SQL - 将 GETDATE() 转换为准确的小时

SQL - Transform GETDATE() into the exactly hour

我有这个:

SELECT GETDATE()

这给了我:

2017-06-12 16:51:50.410

如何转换才能得到:

2017-06-12 16:00:00.000

我有一些流程,我正在注册工作的日期和时间,但我只想要准确的时间。

我该怎么做?

谢谢

要将 getdate() 截断为小时:

select dateadd(hour, datediff(hour, 0, getdate() ), 0)

这会将自 1900-01-01 以来的小时数添加到日期 1900-01-01

您还可以将 hour 换成其他截断级别:年、季度、月、日、分、秒等。

我认为最易读的解决方案是:

SELECT convert(datetime,FORMAT(GETDATE(),'yyyy-MM-dd HH:00:00.000'))
  • 格式化以获得您想要的 GETDATE 时间戳。

  • CONVERT 以确保数据类型是日期时间。