如何创建默认为当前utc日期时间的日期时间偏移列

时间:2016-08-24 18:32:06

标签: sql-server tsql datetime utc

我想创建一个CreatedOn列的表格,类型为DateTimeOffset,当插入记录时,我希望使用当前的UTC日期和时间。

如果我添加一个默认约束GETUTCDATE(),它会在本地时间内输入0偏移量。如果我使用SYSUTCDATETIME(),它会使用正确的偏移量放入当地时间。

是否可以使用0偏移量获得utc时间?

1 个答案:

答案 0 :(得分:0)

我想你可以根据SYSUTCDATETIME()或任何其他日期时间戳的内容强制它到你想要的东西。您可以使用以下内容并将偏移量更改为您想要的偏移量,并使用GETDATE()代替GETUTCDATE()等等。

SELECT GETUTCDATE() AS UTC_DT, SYSUTCDATETIME() AS SYS_UTC_DT, SYSDATETIMEOFFSET() AS SYS_DT_OFFSET

SELECT CAST(TODATETIMEOFFSET(GETUTCDATE(), '+00:00') AS DATETIME2) AS UTC_WITH_OFFSET   --SQL SERVER 2008 and onward...
SELECT GETDATE() AT TIME ZONE 'UTC'                                                     --SQL SERVER 2016 only...