這是需要一段時間才能找到的錯誤。我在這裏發佈它來拯救別人這個錯誤。爲什麼不每週工作?
(這是非常簡單的,一旦被發現,但它是沒有簡單的 - 和昂貴 - 犯的錯誤。)
爲什麼select datediff(w, getdate()-7, getdate())
給予7,而不是1?
這是需要一段時間才能找到的錯誤。我在這裏發佈它來拯救別人這個錯誤。爲什麼不每週工作?
(這是非常簡單的,一旦被發現,但它是沒有簡單的 - 和昂貴 - 犯的錯誤。)
爲什麼select datediff(w, getdate()-7, getdate())
給予7,而不是1?
w
被解釋爲天。從來沒有提到過here,但這似乎意味着幾天的時間。 (我不知道爲什麼這不會給出錯誤,因爲datediff(foo, getdate()-7, getdate())
確實......)
正確的單位爲周是ww
或wk
。
編輯:@Lamak說w
是工作日而不是一天。關於w
沒有任何記載(我可以找到),但這可能是正確的。
停止使用任何類型的速記。猜猜DATEPART(Y,GETDATE());產生了什麼? – 2013-04-24 20:45:32
你不能只使用那個參數,'foo'就是其中之一。但是'w'是'weekday',所以它被接受並且結果是正確的。但是,正如Aaron所說的那樣,您應該始終使用'WEEK''''WEEKDAY'或者完整的名稱來代替 – Lamak 2013-04-24 20:47:15
,如文檔所示:http://msdn.microsoft.com/zh-cn/library/ms174420.aspx。僅供參考,我沒有看到任何東西*除了該文檔中的簡寫。 – 2013-04-24 20:48:54
* 1分鐘前提問* ... - > *回答19秒前* ...您在寫問題時想到了答案嗎? – phadaphunk 2013-04-24 20:40:29
當我發佈......經過大量搜索和一些不安的客戶後,我已經有了答案。我打算幫助其他人像我一樣卡住。我知道這在SO上並不罕見。 – 2013-04-24 20:42:42