如何将1小时添加到日期时间SQL列数据?

时间:2014-04-08 17:23:48

标签: sql sql-server datetime getdate hour

我使用查询的这一部分为添加行的日期和时间创建表列:

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小时设置它,以便我的当前时间正确?

感谢您的帮助。非常感谢所有帮助。

2 个答案:

答案 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