2013-07-30 56 views
10

在SQL Server Management Studio中,我試圖引用特定的日期和時間,使用變量作爲日期,如下所示。在SQL中設置變量日期

Declare @specified_date Date 
set @specified_date = '07-01-2013' 

Select * 
from etc 
Where CreatedDate > CONVERT(datetime, @specified_date & '00:00:00.000') 

此代碼不能正常工作,而且我收到此錯誤:使用

The data types date and varchar are incompatible in the '&' operator.

的數據上有兩個日期和時間碼,而不是改變多個查詢,我我希望能夠只定義一次日期,並讓變量帶着它。如果有人知道解決方案,那會很棒。

+0

我會推薦**總是**如果您將日期指定爲字符串 - 即YYYY-MM-DD格式,請使用ISO-8601格式化日期。只有該格式才能保證可以在任何語言和/或日期格式設置的所有SQL Server實例上工作。其他任何*可能*在正確的設置下工作,但在另一個設置不同的系統上使用時可能會出現可怕的錯誤 –

回答

16

你有沒有嘗試這個辦法:

Declare @specified_date Date 
set @specified_date = '07-01-2013' 
Select * from etc 
Where CreatedDate > @specified_date 
+0

不,但是您給了我一個有效的想法!謝謝了,這就是我最後的結果 – Dakota

+0

因爲給我添加代碼很困難,所以基本上聲明有一天是A,下一個是B,然後在A和B之間選擇* – Dakota

3

使用的+,而不是&。您還必須投射字符串以使其成爲日期時間。

Declare @specified_date Date 
set @specified_date = '07-01-2013' 
Select * from etc 
Where CreatedDate > CONVERT(datetime, @specified_date + cast('00:00:00.000' as datetime)) 
+1

謝謝!保存這個......我很習慣在VBA編碼,很難不使用&lol來連接事物 – Dakota