How can I set SSRS 2005 date formats to DMY instead of MDY

jenkinsgroup
jenkinsgroup used Ask the Experts™
on
Hi,
I have SQL 2005 running on a Windows 2003 R2 Server.
I am trying to use the Reporting Services but have found an annoying issue around dates and time.
Basically, SSRS is converting all dates to MDY like the US way but we use DMY for every other part of our environment.

So here are the diagnostic steps I have taken;
1) Set regional settings of the 2003 Server to DMY format.
2) Set the default language of the report to "<Language>en-GB</Language>"
3) Confirmed that the database itself is storing the date as DMY

There is one setting that I have found that is still set to MDY.
If I run "sp_configure 'default language'" on the SQL Server it is set to '0' which indicates English US language. I can set this to British-English but im not sure of the implications of doing this on a server that is already in use. I have tested it on our test server and it didn't seem to affect the live data. What does this setting do? Will it affect the dateformat for Sql Reporting Services? Has anyone had experience in changing this setting on a production server?

Or fundamentally, is there an easier way to change reporting services to DMY?

I know this question has kinda been asked elsewhere but more often the circumstances are different.
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Hi,

In my environment (completely USA-based), simply changing, under Report Properties, the Language from "English (United States)" to English (United Kingdom)" changed my formatted dates from mm/dd/yyyy to dd/mm/yyyy.  The dates were formatted in MSRS using the "d" formatting option.

Author

Commented:
Thanks awarren85,
Where is "Report Properties"?.
If I click 'Properties' inside the report after browsing to it through http://***servername***/reports I don't have an option for language.
If I click Report Properties in Visual Studio 2005 whilst editing a particular report .rdl file it doesn't have a setting for language.

Am I missing something?
It's kind of goofy, and I'm sure there is a better way, but I don't know it.  See the screenshot attached and it's how I access the Properties.  In the screenshot, click the location where the black box is in the top-left, then you can change "Report Properties"  Thanks.
msrs-edit-prop.JPG
Rowby Goren Makes an Impact on Screen and Online

Learn about longtime user Rowby Goren and his great contributions to the site. We explore his method for posing questions that are likely to yield a solution, and take a look at how his career transformed from a Hollywood writer to a website entrepreneur.

Author

Commented:
Thanks awarren85 but I had already set that setting via the XML page. <Language>en-GB</Language>
Unfortunately the date is still converting to MDY.
Huh, freaky.  That was enough on mine in both the Visual Studio Preview tab AND when deployed to the http://*servername*/reports folder to go to D/M/Y.  Can you verify that you're formatting the dates using the "d" option?  May want to as well verify that the data coming out of the database is in datetime format.
Alpesh PatelSolution Architect at TCS (SAFe®Agilist, TOGAF® Foundation, PSM I®, MCP, MCSD)

Commented:
see image
Untitled.png
@PatelAlpesh:That looks like MSRS 2008, unfortunately the poster is on MSRS 2005.  I've attached the screenshot from 2005 that shows the textbox formatting, set to "d" in this example.
msrs-2005.JPG

Author

Commented:
Hi guys, thanks for your responses.
Ive made some steps forward in debugging this problem.

The problem lies not with the report or with the report server even!
I have discovered that when im on the database itself and do a query like this;
select * from table where date < '13/05/2011'
it fails saying invalid datetime. Obviously if i change the query to;
select * from table where date < '05/13/2011'
it works!
The annoying thing is that the dates are being written and stored on the db in DMY.

OK so, I changed the sp_configure 'default language' of the database to '23' (British English) but that hasn't helped.

Anyone know how to change the way sql queries the dates?

Should I relist this query under a new question?
Take a look at this article, looks like it's a SQL Server setting:

http://msdn.microsoft.com/en-us/library/ms189491.aspx

Thanks.

Author

Commented:
Mmm, this doesn't work in a view for me.
The data for my reports is coming from a view.
This should change the way the dates are handled in the where clause, for instance on my test box:

set dateformat dmy
go
select mat_date from dvfidel.jk.fr where MAT_DATE < '12/31/2010'

 (where mat_date is a datetime), throws an error that the string could not be converted to a datetime value.  However, if I do:

set dateformat mdy
go
select mat_date from dvfidel.jk.fr where MAT_DATE < '12/31/2010'

it works, and successfully converts the date.

Author

Commented:
Hey guys sorry took so long to reply.
NZ shutdown last week due to the world cup so I wasn't at work.

Basically I've made a workaround fix here.

I found that if I set the report parameter to a string instead of datetime it would accept the english time. strange. but hey its working now.

Thanks awarren85 for your help.

Author

Commented:
As said in comment above.
awarren partially solved this issue. I had to set the report parameter to string.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial