2014-03-26 58 views

回答

0

在SQL Server中,你可以這樣做

WHERE CAST(Date_Column AS DATE) = '20140325' --<-- 'YYYYMMDD' ANSI Standard 

WHERE CAST(Date_Column AS DATE) = CAST(GETDATE() AS DATE) 
+0

我得到像這樣的錯誤:查找錯誤 - SQL Server數據庫錯誤:類型DATE不是一個定義的系統類型。 – bDir

+0

你使用的是什麼版本的sql server? –

0

如果FQA_END_DATE是日期時間數據類型;您不需要對字符進行轉換就可以將其與字符串進行比較。你只需要以非格式提供字符串,例如ISO格式爲yyyyMMdd;

所以如果FQA_END_DATE是一個日期時間這會工作:

WHERE FQA_END_DATE = '20140325' 

但如果,T母雞FQA_END_DATE包含時間部分以及日期,而你只能在日期部分比較感興趣(而且你沒有DATE數據類型),有很多方法存在,但一個訣竅是運行它通過float;

WHERE CAST(FLOOR(CAST(FQA_END_DATE AS FLOAT)) AS DATETIME) = '20140325' 

這將轉換/刪除您的日期時間變量的時間部分。 使用DATEPART或DATEDIFF功能也可以達到同樣的效果。

最終 - 您可以使用CONVERT將WHERE的兩側轉換爲相同的日期格式;

WHERE CONVERT(DATETIME, FQA_END_DATE, 112) = CONVERT(DATETIME, '20140325', 112) 

這個問題存在很多種方法,希望這會給一些啓發。

我可以給你的最好的建議是如果處理日期爲字符串,使用ISO格式的yyyyMMdd(20140325),因爲SQL Server可以自動轉換。