2016-04-25 172 views
0

BIDS/Visual Studio 2005中SSRS查詢日期格式和參數日期格式不同?

嗨,我已經經歷了這麼一個問題看,並不能找到答案。我確定在那裏肯定有一個人。

這看起來像一個簡單的問題,但我已經嘗試了一些變化,但無法找到解決方案!

簡單數據集:「DATERANGE」給我一個日/月/年小時:MN:ss格式如

FromDate     ToDate 
2016-04-24 00:00:00.000 2016-04-25 23:59:59.997 

select (CAST(FLOOR(CAST(dateadd(d,-1,getdate()) AS FLOAT)) AS DATETIME)) AS 'FromDate', 
DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd, -1, getdate()), 0)) as 'ToDate' 

然後我使用FROM日期和todate如報告作爲默認值的參數。然而,這些顯示在參數字段中作爲「mm/dd/yyyy hh:mn:ss」格式!

我的控制面板設置爲英國英語。這可以在Visual Studio「預覽」中使用,但由於日期無法識別,所以會在部署中失敗!有什麼建議麼??

+0

我的理解是,參數面板中的日期格式是固定在那種可怕的美國格式,並且沒有辦法繞過它。 –

回答

1

每個報告都有其自己的本地化設置。在報告的「屬性」面板中,您將在本地化部分看到一個Language屬性。您可以將其設置爲en-GB這應該可以解決您的問題。但是,我通常將其設置爲=User!Language以使用用戶的區域設置。

編輯

由於不工作,讓我們轉換爲軍事日期格式(所有元素大小的降序 - 年,月,日,小時等)作爲一個字符串,並讓應用程序將其轉換回日期。這種格式是周圍路過的日期,以避免地區問題的最可靠的方法:

select CONVERT(VARCHAR(23), (CAST(FLOOR(CAST(dateadd(d,-1,getdate()) AS FLOAT)) AS DATETIME)), 121) AS 'FromDate', 
CONVERT(VARCHAR(23), DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd, -1, getdate()), 0)), 121) as 'ToDate' 
+0

謝謝@ChisLatta。我已經嘗試將語言設置爲英語,但這沒有什麼區別。我也嘗試了'= User!Language'的建議,但是那裏也沒有運氣! – MiguelH

0

唯一的解決辦法,我能得到可用的上班時間是設置SSRS參數爲一個字符串,該日期轉換爲字符串如下:

select distinct left(convert(varchar, (CAST(FLOOR(CAST(dateadd(d,-1,mydate) AS FLOAT)) AS DATETIME)),120),30) as FromDate, 
left(convert(varchar, DATEADD(ms, -3, DATEADD(dd, DATEDIFF(dd, -1, mydate), 0)),120),30) as ToDate 
from mydb 
order by fromdate desc 

參數然後CAST作爲查詢中的日期。真的有點麻煩!