0

我有SSRS 2008 R2,並且正在爲英國的報告工作。SSRS 2008 R2-格式化參數到DD/MM/YYYY

我的報告有一個日期/時間數據類型參數。當用戶打開報告時,默認日期格式爲MM/DD/YYYY,但我想要有DD/MM/YYYY格式(如果用戶從日曆下拉日期選擇中選擇日期,則相同)。

我已將報告中的語言設置更改爲英國,並且它格式化數據集中的日期,而不是參數。我也嘗試過使用cdate表達式,但這也不起作用。

一個解決方法是將其更改爲nvarchar在我的SQL代碼中,但是,我有幾個腳本使用> @eomdate,因此在這種情況下nvarchar將不起作用。

任何想法?

+0

也許我完全誤解了你,但不能用['FormatDateTime'](http://msdn.microsoft.com/en-us/library/a912f2a0(v = vs.90)]格式化日期。 ASPX)。 – maba 2013-03-26 13:33:47

+0

所以如果用戶使用日期選擇器選擇一個日期,它是DD/MM/YYYY格式,但默認日期是MM/DD/YYYY?你是如何設置默認日期的,來自查詢,表達還是硬編碼? – Nathan 2013-03-26 20:37:56

回答

0

請參閱this post on the MSDN forums.日曆下拉菜單和參數文本框的日期格式取決於用戶在瀏覽器中的語言設置,而不是報表。

如果要強制用戶具有相同的顯示日期,你必須爲你想使用格式化的文本字段,然後使用CDate()在你的代碼把這一VARCHAR爲日期執行時間的比較。

+0

上週我看到那篇文章,並將我在瀏覽器中的設置更改爲英國,但它也無效。 – 2013-03-25 21:13:32

+0

對,參數文本框中的日期格式始終設置爲en-US,日曆下拉菜單位於en-US中,但下拉菜單中的日期顯示將遵循語言的設置。因此,無法在SSRS 2012或任何早期版本中「嵌入」日期參數的日期格式。 – 2013-03-25 21:16:41

+0

所以唯一能做到你想要的(使用非美國日期格式)的方法是使用文本字段和CDate()。 – 2013-03-25 21:17:08

0

這就是我在SQL代碼中解決問題以使其在SSRS中作爲黑客工作的原因。

申報@eomdate VARCHAR(50) 組@eomdate = '31/01/2013'

SELECT * FROM policiesEOM p 其中p.eomdate> =轉換(日期時間,@eomdate,105)

然後,我將數據類型更改爲文本,它完美地工作。

0

ssrs日期類型在Google Chrome,Mozilla Firefox,Opera和Safari中使用瀏覽器語言。在邊緣也是。 IE使用Windows區域日期格式。

如果您不想使用日期下拉框,則可以使用文本參數並將該值與轉換函數中內置的ssrs進行轉換。