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

Kel*_*sey 5 sql sql-server datetime getdate hour

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

order_date datetime NOT NULL DEFAULT GETDATE()

并且每当创建新行时,数据for order_date设置为如下所示:

Apr 8 2014 9:52AM

出于某种原因,当创建行并设置order_date列数据时,小时设置为1小时.例如,上面的列数据Apr 8 2014 9:52AM设置为10:52 AM.

有没有办法提前1小时设置它,以便我的当前时间是正确的?

感谢您的任何帮助.非常感谢所有帮助.

Nat*_*ath 19

使用DATEADD()

DATEADD(hh, 1, order_date)
Run Code Online (Sandbox Code Playgroud)

编辑:

如果时间设置为一小时,则可能是系统时间错误.所以,如果你只是要求服务器管理员更正它会更好.


Kar*_*ger 5

您应该考虑使用DATETIMEOFFSET作为数据类型而不是 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.
Run Code Online (Sandbox Code Playgroud)

例子:

 CREATE TABLE DateTest (id INT, order_date DATETIMEOFFSET NOT NULL DEFAULT SYSDATETIMEOFFSET())
 INSERT INTO DateTest (id) VALUES (1)
 SELECT * FROM DateTest
Run Code Online (Sandbox Code Playgroud)