Quantcast
Channel: Date formats
Viewing all articles
Browse latest Browse all 2

Date formats

$
0
0

Hi experts,

I am creating a "Year to Date" report and want the users to be able to select the month for the start of the year.

I have created a data set for my "Start Month" parameter as follows:

ELECT        CAST(DATENAME(mm, DATEADD(mm, - 12, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(10)) + '-' + CAST(YEAR(DATEADD(mm, - 12, 
                         DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(4)) AS DateLabel, DATEADD(mm, - 12, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)) 
                         AS DateValue, 1 AS SortKey
UNION ALL
SELECT        CAST(DATENAME(mm, DATEADD(mm, - 11, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(10)) + '-' + CAST(YEAR(DATEADD(mm, - 11, 
                         DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(4)) AS DateLabel, DATEADD(mm, - 11, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)) 
                         AS DateValue, 2 AS SortKey
UNION ALL
SELECT        CAST(DATENAME(mm, DATEADD(mm, - 10, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(10)) + '-' + CAST(YEAR(DATEADD(mm, - 10, 
                         DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(4)) AS DateLabel, DATEADD(mm, - 10, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)) 
                         AS DateValue, 3 AS SortKey
UNION ALL
SELECT        CAST(DATENAME(mm, DATEADD(mm, - 9, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(10)) + '-' + CAST(YEAR(DATEADD(mm, - 9, 
                         DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(4)) AS DateLabel, DATEADD(mm, - 9, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)) 
                         AS DateValue, 4 AS SortKey
UNION ALL
SELECT        CAST(DATENAME(mm, DATEADD(mm, - 8, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(10)) + '-' + CAST(YEAR(DATEADD(mm, - 8, 
                         DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(4)) AS DateLabel, DATEADD(mm, - 8, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)) 
                         AS DateValue, 5 AS SortKey
UNION ALL
SELECT        CAST(DATENAME(mm, DATEADD(mm, - 7, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(10)) + '-' + CAST(YEAR(DATEADD(mm, - 7, 
                         DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(4)) AS DateLabel, DATEADD(mm, - 7, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)) 
                         AS DateValue, 6 AS SortKey
UNION ALL
SELECT        CAST(DATENAME(mm, DATEADD(mm, - 6, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(10)) + '-' + CAST(YEAR(DATEADD(mm, - 6, 
                         DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(4)) AS DateLabel, DATEADD(mm, - 6, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)) 
                         AS DateValue, 7 AS SortKey
UNION ALL
SELECT        CAST(DATENAME(mm, DATEADD(mm, - 5, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(10)) + '-' + CAST(YEAR(DATEADD(mm, - 5, 
                         DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(4)) AS DateLabel, DATEADD(mm, - 5, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)) 
                         AS DateValue, 8 AS SortKey
UNION ALL
SELECT        CAST(DATENAME(mm, DATEADD(mm, - 4, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(10)) + '-' + CAST(YEAR(DATEADD(mm, - 4, 
                         DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(4)) AS DateLabel, DATEADD(mm, - 4, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)) 
                         AS DateValue, 9 AS SortKey
UNION ALL
SELECT        CAST(DATENAME(mm, DATEADD(mm, - 3, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(10)) + '-' + CAST(YEAR(DATEADD(mm, - 3, 
                         DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(4)) AS DateLabel, DATEADD(mm, - 3, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)) 
                         AS DateValue, 10 AS SortKey
UNION ALL
SELECT        CAST(DATENAME(mm, DATEADD(mm, - 2, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(10)) + '-' + CAST(YEAR(DATEADD(mm, - 2, 
                         DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(4)) AS DateLabel, DATEADD(mm, - 2, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)) 
                         AS DateValue, 11 AS SortKey
UNION ALL
SELECT        CAST(DATENAME(mm, DATEADD(mm, - 1, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(10)) + '-' + CAST(YEAR(DATEADD(mm, - 1, 
                         DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0))) AS varchar(4)) AS DateLabel, DATEADD(mm, - 1, DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)) 
                         AS DateValue, 12 AS SortKey
ORDER BY SortKey

It returns 3 columns for for each month for the previous 3 months: DateLabel, DateValue and SortKey

My date value returns a date in the format: 2011-10-01 00:00:00.000

I have set my label as the DateLabel and value as the DateValue.

When I run the report, the date passed to SQL server is reformatted as dd/mm/yyyy hh:mm:ss (e.g. '1/06/2012 12:00:00 AM')

This is then reinterpreted again by SQL - incorrectly.

My report language is set to en-AU (i.e. Australia with dates formatted dd/mm/yyyy)

Please help.

Cheers, Clay


Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images