我有一个 DateTime 列,我需要使用 DateTime 列添加一个新列并转换为 YYYY-MM-DD HH:00:00 格式。
示例:
DateTime
2021-06-01 11:32:00.000
2021-06-01 12:55:00.000
2021-06-01 00:32:40.000
预期结果:
DateTime-------------------------------Converted--------------
2021-06-01 11:32:00.000----------------2021-06-01 11:00:00.000
2021-06-01 12:55:00.000----------------2021-06-01 12:00:00.000
2021-06-01 00:32:40.000----------------2021-06-01 00:00:00.000
答案 0 :(得分:2)
要将日期时间值截断为当前小时的下限,您可以使用:
SELECT
DateTime,
DATEADD(hour, DATEDIFF(hour, 0, DateTime), 0) AS Converted
FROM yourTable;
答案 1 :(得分:2)
您也可以为此使用 DATETIMEFROMPARTS
SELECT
DateTime,
DATETIMEFROMPARTS(
YEAR(DateTime),
MONTH(DateTime),
DAY(DateTime),
DATEPART(hour, DateTime),
0,
0,
0) AS Converted
FROM yourTable;
请注意,通过将 datetime2
和 DATETIME2FROMPARTS
与 datetimeoffset
一起使用,此方法也适用于 DATETIMEOFFSETFROMPARTS
,而另一个答案中的 DATEADD/DATEDIFF
技巧虽然简洁,不会。