将日期时间转换为 YYYY-MM-DD HH:00:00

时间:2021-07-06 03:13:56

标签: sql sql-server database function datetime

我有一个 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

2 个答案:

答案 0 :(得分:2)

要将日期时间值截断为当前小时的下限,您可以使用:

SELECT
    DateTime,
    DATEADD(hour, DATEDIFF(hour, 0, DateTime), 0) AS Converted
FROM yourTable;

screen capture from demo link below

Demo

答案 1 :(得分:2)

您也可以为此使用 DATETIMEFROMPARTS

SELECT
    DateTime,
    DATETIMEFROMPARTS(
      YEAR(DateTime),
      MONTH(DateTime),
      DAY(DateTime),
      DATEPART(hour, DateTime),
      0,
      0,
      0) AS Converted
FROM yourTable;

请注意,通过将 datetime2DATETIME2FROMPARTSdatetimeoffset 一起使用,此方法也适用于 DATETIMEOFFSETFROMPARTS,而另一个答案中的 DATEADD/DATEDIFF 技巧虽然简洁,不会。

相关问题