2014-10-08 71 views
0

我有一個查詢這就是說,SQL Server的日期時間解釋有誤日/月

select * from myTable where [date] < 'YYYY-MM-DD' 

但是SQL服務器格式爲YYYY-MM-DD解釋這個(我認爲YYYY-MM- DD格式被使用,因爲它不應該是明確的,但不知道這是不是這種情況!)

這將是很好的知道爲什麼會發生這種情況(我還沒有prereinced之前與SQL Server,以及什麼最佳做法是在處理日期時

回答

4

有三種格式:a重新(並且已經很長一段時間)毫不含糊。它們是:

YYYYMMDD 
YYYY-MM-DD'T'hh:mm:ss 
YYYY-MM-DD'T'hh:mm:ss.mil 

一些其他格式可以是在SQL Server和/或與新的datetime2datetime類型工作的新版本明確的,但你總是可以依靠上述3所以纔要麼使用YYYYMMDD,要麼儘可能避免在處理日期時將字符串傳遞給SQL Server。

(或選項3,使用CONVERT並指定你實際使用什麼格式)

0

我將開始與兩件事情來檢查:

  1. 如何這個日期被傳遞給SQL服務器(它可以取決於客戶端上的日期 設置 - 即Windows設置)。我看到一個代碼(在VB6中) ,其中2014年10月8日通過日期爲2014年10月8日或8月10日 2014取決於服務器設置(波蘭語,英國語,美國語)。

  2. SQL Server如何識別以字符串形式傳遞的日期 - 即2014-10-08(類似問題)。