我有以下的sql返回最後一個星期一的日期。tsql返回的日期是什麼
SELECT DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 0) //2017-05-15 00:00:00.000
但是在試圖瞭解這已經制定出來,我很爲迷茫 什麼通過以下返回的6124代表
SELECT DATEDIFF(wk, 6, GETDATE())
這只是上週爲什麼是這樣的高數量?
還怎麼能偏移是一個固定的號碼,仍然能夠制定出上週一
我有以下的sql返回最後一個星期一的日期。tsql返回的日期是什麼
SELECT DATEADD(wk, DATEDIFF(wk, 6, GETDATE()), 0) //2017-05-15 00:00:00.000
但是在試圖瞭解這已經制定出來,我很爲迷茫 什麼通過以下返回的6124代表
SELECT DATEDIFF(wk, 6, GETDATE())
這只是上週爲什麼是這樣的高數量?
還怎麼能偏移是一個固定的號碼,仍然能夠制定出上週一
這是1900年一月的星期天的日期......
SELECT
DATEDIFF(wk, '1/1/1900','5/20/2017'),
DATEDIFF(wk, '1/1/1900',GETDATE())
具體來說,他們是使用DATETIMEOFFSET
而不是實際的DATETIME
這是DATEDIFF
所以可以接受的參數來回答你的問題,這是週數(因爲你指定的周)從第一星期天在1900年1月至當天。
的6
在datediff
startdate
參數又是另一種一個星期,以減少輸出,所以它因爲1900-01-06
而不是1900-01-01
(一個的差)返回多少個星期。
這兩個語句將返回相同的結果:
select dateadd(week, datediff(week, 6, getdate()),0)
select dateadd(week, datediff(week, 0, getdate())-1,0)
就在這個部分:因爲1900-01-06
datediff(week, 6, getdate()
返回周(6124)的數量,當加入的1900-01-01
日期爲您提供了上週開始。