我使用查询的这一部分为添加行的日期和时间创建了一个表列:
order_date datetime NOT NULL DEFAULT GETDATE()
每当创建新行时,order_date
的数据都设置为如下所示:
Apr 8 2014 9:52AM
出于某种原因,当创建行并设置order_date
列数据时,小时设置为倒退 1 小时。例如,Apr 8 2014 9:52AM
的上述列数据设置为上午 10:52。
有没有办法提前 1 小时设置它,以便它与我当前的时间正确?
感谢您的任何帮助。非常感谢所有帮助。
使用 DATEADD()
DATEADD(hh, 1, order_date)
编辑:
如果时间设置为一小时后,则系统时间可能错误。因此,如果您只是要求服务器管理员更正它会更好。
你应该考虑使用 DATETIMEOFFSET 作为你的 daatype,而不是 DATETIME。
定义与一天中具有时间的时间组合的日期 区域感知,基于 24 小时制。
你可以把它与 SYSDATETIMEOFFSET() 一起使用。
Returns a datetimeoffset(7) value that contains the date and time of the computer on which the instance of SQL Server is running. The time zone offset is included.
例:
CREATE TABLE DateTest (id INT, order_date DATETIMEOFFSET NOT NULL DEFAULT SYSDATETIMEOFFSET())
INSERT INTO DateTest (id) VALUES (1)
SELECT * FROM DateTest