我使用查询的这一部分为添加行的日期和时间创建表列:
order_date datetime NOT NULL DEFAULT GETDATE()
每当创建新行时,order_date
的数据都设置为:
Apr 8 2014 9:52AM
出于某种原因,当创建一行并设置order_date
列数据时,小时设置为1小时。例如,Apr 8 2014 9:52AM
的上述列数据设置为10:52 AM。
有没有办法提前1小时设置它,以便我的当前时间正确?
感谢您的帮助。非常感谢所有帮助。
答案 0 :(得分:17)
使用DATEADD()
DATEADD(hh, 1, order_date)
编辑:
如果在一小时后设置时间,则可能是系统时间错误。因此,如果您只是要求服务器管理员更正它会更好。
答案 1 :(得分:4)
您应该考虑使用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