3 回答

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊
Select DateAdd(Day, DateDiff(Day, 0, GetDate()), 0)
DateDiff(Day,0,GetDate())與DateDiff(Day,'1900-01-01',GetDate())相同
由于DateDiff返回一個(gè)整數(shù),您將獲得自1900年1月1日以來經(jīng)過的天數(shù)。然后將該整數(shù)天添加到1900年1月1日。凈效果是刪除時(shí)間組件。
我還應(yīng)該提一下,這種方法適用于任何日期/時(shí)間部分(如年,季,月,日,小時(shí),分鐘和秒)。
Select DateAdd(Year, DateDiff(Year, 0, GetDate()), 0)Select DateAdd(Quarter, DateDiff(Quarter, 0, GetDate()), 0)Select DateAdd(Month, DateDiff(Month, 0, GetDate()), 0)Select DateAdd(Day, DateDiff(Day, 0, GetDate()), 0)Select DateAdd(Hour, DateDiff(Hour, 0, GetDate()), 0)Select DateAdd(Second, DateDiff(Second, '20000101', GetDate()), '20000101')
最后一秒,需要特殊處理。如果您使用1900年1月1日,您將收到錯(cuò)誤。
兩個(gè)日期時(shí)間列的差異導(dǎo)致運(yùn)行時(shí)溢出。
您可以使用不同的參考日期(如2000年1月1日)來規(guī)避此錯(cuò)誤。

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
select cast(floor(cast(@datetime as float)) as datetime)
之所以有效,因?yàn)閷⑷掌跁r(shí)間轉(zhuǎn)換為浮點(diǎn)數(shù)會(huì)給出自1900年1月1日以來的天數(shù)(包括一天的分?jǐn)?shù))。地板會(huì)刪除小數(shù)天并留下整天的天數(shù),然后可以將其轉(zhuǎn)換回日期時(shí)間。
- 3 回答
- 0 關(guān)注
- 816 瀏覽
添加回答
舉報(bào)