2013-10-23 51 views
0

我在SSRS中運行一個查詢,默認日期選擇器的日期格式爲DD/MM/YYYY。但是實際數據庫中的日期是YYYY-MM-DD格式。我試圖轉換這些日期如下,但我得到的消息「轉換爲日期時間數據類型的varchar數據類型導致超出範圍的值」。SSRS - 將varchar數據類型轉換爲日期時間數據類型導致超出範圍值。 - 轉換爲YYYY-MM-DD時

Col1 BETWEEN convert(varchar, '22/10/2013 00:00:00', 120) AND convert(varchar, '22/10/2013 23:59:59', 120) 

我在解決錯誤觸發原因時遇到了一些麻煩。 IE瀏覽器。 2013年10月22日是一個有效的日期格式,所以我認爲它應該很容易轉換成2013-10-2013?

但我想我錯過了一些東西!

+3

三個問題:數據庫列是varchar還是datetime?是正確輸入日期的參數?你的查詢是否直接對數據庫起作用(例如在SQL Management Studio中)? – Bill

+0

它不適用於SSMS - 它會引發相同的錯誤。該列是「日期時間」,SSRS中的參數是「日期/時間」 – Dean

回答

2

DateTime values does not have a format - you apply a format when you display them。您應該可以將該參數設置爲DateTime類型,並將其傳遞到查詢中,而不進行任何字符串轉換。

+0

啊,是的,這幾乎是釘釘子。通過最初將這些參數聲明爲字符串,我錯了。 IE瀏覽器。 '@StartDate'而不僅僅是@StartDate。當我收到轉換錯誤消息時,我錯誤地開始嘗試轉換日期,當我需要做的事情是刪除引號! – Dean

+0

嗯,這是房間的問題 - 它試圖將_literal string_'「@StartDate」'轉換爲日期。參數替換不只是一個字符串替換,所以你不能把參數值放入字符串中。 –

相關問題