我有这样的:SQL - 变换GETDATE()到正好小时
SELECT GETDATE()
这给了我:
2017-06-12 16:51:50.410
我如何转换这种为了得到:
2017-06-12 16:00:00.000
我有一些过程,我正在注册工作的日期和时间,但我只想要一个小时。
我该怎么做?
感谢
我有这样的:SQL - 变换GETDATE()到正好小时
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'))
FORMAT得到GETDATE时间戳正是你想要的。
CONVERT确保数据类型是日期时间。
hh是12小时制,因此13:00将是凌晨1个 –
感谢约翰。更新为从24小时到HH。 – GlennFriesen
不用担心。只是不希望OP得到意想不到的结果。争论的焦点。看起来我们都被压低了。如果以负责任的方式使用Format()是一个有效的解决方案。许多人不这样看 –