• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 760
  • Last Modified:

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.
0
jenkinsgroup
Asked:
jenkinsgroup
  • 6
  • 6
2 Solutions
 
awarren85Commented:
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.
0
 
jenkinsgroupAuthor 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?
0
 
awarren85Commented:
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
0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

 
jenkinsgroupAuthor 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.
0
 
awarren85Commented:
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.
0
 
Alpesh PatelAssistant ConsultantCommented:
see image
Untitled.png
0
 
awarren85Commented:
@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
0
 
jenkinsgroupAuthor 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?
0
 
awarren85Commented:
Take a look at this article, looks like it's a SQL Server setting:

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

Thanks.
0
 
jenkinsgroupAuthor Commented:
Mmm, this doesn't work in a view for me.
The data for my reports is coming from a view.
0
 
awarren85Commented:
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.

0
 
jenkinsgroupAuthor 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.
0
 
jenkinsgroupAuthor Commented:
As said in comment above.
awarren partially solved this issue. I had to set the report parameter to string.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

  • 6
  • 6
Tackle projects and never again get stuck behind a technical roadblock.
Join Now