Link to home
Start Free TrialLog in
Avatar of jenkinsgroup
jenkinsgroup

asked on

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

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.
SOLUTION
Avatar of awarren85
awarren85

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of jenkinsgroup
jenkinsgroup

ASKER

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?
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
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.
Avatar of Alpesh Patel
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
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.
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.

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.
As said in comment above.
awarren partially solved this issue. I had to set the report parameter to string.