日期取整
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;