【发布时间】:2017-01-01 00:31:48
【问题描述】:
我想创建一个包含CreatedOn 列、类型为DateTimeOffset 的表,并且在插入记录时,我希望使用当前的UTC 日期和时间。
如果我添加GETUTCDATE() 的默认约束,它将以0 偏移量输入本地时间。如果我使用SYSUTCDATETIME(),它会使用正确的偏移量输入当地时间。
是否可以使用 0 偏移量获取 utc 时间?
【问题讨论】:
-
您能否提供一些关于
GETUTCDATE(), SYSUTCDATETIME(), SYSDATETIMEOFFSET()为您返回的结果以及您的正确偏移量应该是多少的结果?我很困惑为什么你不使用SYSUTCDATETIME()如果它给你正确的偏移量。我看了你的问题几次,不知所措——也许系统 DT 设置不正确? -
我当前的当地时间是2016-08-24 13:44:19.5187024,选择SysUtcDateTime()返回2016-08-24 20:44:19.5187024。那是正确的 UTC 日期和时间,即使它没有说,它也偏移 0。如果我将默认约束设置为 SysUtcDateTime(),则该列中的值为 2016-08-24 13:44:19.5187024 +00:00。它给了我一个无效偏移量的本地时间。
标签: sql-server tsql datetime utc