我有一個查詢這就是說,SQL Server的日期時間解釋有誤日/月
select * from myTable where [date] < 'YYYY-MM-DD'
但是SQL服務器格式爲YYYY-MM-DD解釋這個(我認爲YYYY-MM- DD格式被使用,因爲它不應該是明確的,但不知道這是不是這種情況!)
這將是很好的知道爲什麼會發生這種情況(我還沒有prereinced之前與SQL Server,以及什麼最佳做法是在處理日期時
我有一個查詢這就是說,SQL Server的日期時間解釋有誤日/月
select * from myTable where [date] < 'YYYY-MM-DD'
但是SQL服務器格式爲YYYY-MM-DD解釋這個(我認爲YYYY-MM- DD格式被使用,因爲它不應該是明確的,但不知道這是不是這種情況!)
這將是很好的知道爲什麼會發生這種情況(我還沒有prereinced之前與SQL Server,以及什麼最佳做法是在處理日期時
有三種格式:a重新(並且已經很長一段時間)毫不含糊。它們是:
YYYYMMDD
YYYY-MM-DD'T'hh:mm:ss
YYYY-MM-DD'T'hh:mm:ss.mil
一些其他格式可以是在SQL Server和/或與新的datetime2
,date
和time
類型工作的新版本明確的,但你總是可以依靠上述3所以纔要麼使用YYYYMMDD
,要麼儘可能避免在處理日期時將字符串傳遞給SQL Server。
(或選項3,使用CONVERT
並指定你實際使用什麼格式)
我將開始與兩件事情來檢查:
如何這個日期被傳遞給SQL服務器(它可以取決於客戶端上的日期 設置 - 即Windows設置)。我看到一個代碼(在VB6中) ,其中2014年10月8日通過日期爲2014年10月8日或8月10日 2014取決於服務器設置(波蘭語,英國語,美國語)。
SQL Server如何識別以字符串形式傳遞的日期 - 即2014-10-08
(類似問題)。