日期取整
SQL Server 沒有直觀的方法可以直接將日期向下取到月份、小時或分鐘。不過,你可以結合 DATEADD() 與 DATEDIFF() 來完成這種取整。
若要把日期 1914-08-16 向下取到整年,可呼叫 DATEADD(YEAR, DATEDIFF(YEAR, 0, '1914-08-16'), 0)。
若要把日期向下取到整月,可呼叫 DATEADD(MONTH, DATEDIFF(MONTH, 0, '1914-08-16'), 0)。
這種做法也適用於其他數個日期部分。
本練習屬於課程
SQL Server 的時間序列分析
練習說明
- 結合使用
DATEADD()和DATEDIFF(),搭配不同的日期部分,將時間分別向下取到天、時與分。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
DECLARE
@SomeTime DATETIME2(7) = '2018-06-14 16:29:36.2248991';
-- Fill in the appropriate functions and date parts
SELECT
DATEADD(___, DATEDIFF(DAY, 0, @SomeTime), 0) AS RoundedToDay,
___(___, ___(___, 0, @SomeTime), 0) AS RoundedToHour,
___(___, ___(___, 0, @SomeTime), 0) AS RoundedToMinute;