在SQL Server 2008中创建一个日期时间列,默认值为当前时间戳UTC



我正在SQL Server 2008中创建一个表,如下所示:

create table Dummy
(
   id int,
   status int,
   node_id varchar(512),
   createdDTTM datetime NOT NULL default CURRENT_TIMESTAMP
);

但是,我想指定一个UTC时区作为默认时区。我知道在postgreSQL中我们有类似createdDTTM TIMESTAMP NOT NULL DEFAULT (now() at time zone 'utc') 的东西

我们可以在这里做类似的事情吗?

对于包含时区信息的时间,请在SQL Server(2008及更新版本)中使用DATETIMEOFFSET

create table dbo.Dummy
(
   id int,
   status int,
   node_id varchar(512),
   createdDTTM DateTimeOffset NOT NULL default SYSDATETIMEOFFSET()
);

使用SYSDATETIMEOFFSET(),您将从SQL server获得默认的当前日期和时间DATETIMEOFFSET(在服务器所在的本地时区中)。

或者您正在寻找SYSUTCDATETIME(),它以UTC格式为您提供当前日期和时间?这适用于DATETIME2(n)DATETIMEOFFSET列(在SQLServer2008及更新版本中,我建议不要再使用DATETIME

最新更新