开始使用免费开始使用

日期取整

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;
编辑并运行代码