我想知道我怎麼可以查詢使用日期時間轉換數據:查詢在Microsoft SQL Server使用時間值轉換
實例如果ORACLE使用:
WHERE TO_CHAR(FQA_END_DATE,'YYYY-MM-DD') = '2014-03-25'
如何在SQL Server?
WHERE ...
請幫忙指教。
感謝
我想知道我怎麼可以查詢使用日期時間轉換數據:查詢在Microsoft SQL Server使用時間值轉換
實例如果ORACLE使用:
WHERE TO_CHAR(FQA_END_DATE,'YYYY-MM-DD') = '2014-03-25'
如何在SQL Server?
WHERE ...
請幫忙指教。
感謝
在SQL Server中,你可以這樣做
WHERE CAST(Date_Column AS DATE) = '20140325' --<-- 'YYYYMMDD' ANSI Standard
或
WHERE CAST(Date_Column AS DATE) = CAST(GETDATE() AS DATE)
如果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可以自動轉換。
我得到像這樣的錯誤:查找錯誤 - SQL Server數據庫錯誤:類型DATE不是一個定義的系統類型。 – bDir
你使用的是什麼版本的sql server? –