繁体   English   中英

如何在SQL Server中使用TimeZone将默认约束设置为UTC时间

[英]how to set default constraint to UTC time with TimeZone in SQL Server

我必须将默认值添加到带有时区的UTC时间的datetime列中,现在我在默认约束中使用GETUTCDATE() ,但是没有将时区信息添加到该列中。

请帮我。

包含时区信息(特别是偏移量)的类型为datetimeoffset GETUTCDATE返回一个简单的旧DATETIME ,它没有时区指示,甚至没有本地与UTC指示符。

如果您关心时区和偏移量,请使用datetimeoffset列和` SYSDATETIMEOFFSET作为其默认值

您需要DATETIMEOFFSET数据类型和SWITCHOFFSET函数

DECLARE @t TABLE 
(
 id INT,
 dt DATETIMEOFFSET DEFAULT (SWITCHOFFSET(SYSDATETIMEOFFSET(),'+00:00'))
);

INSERT @t(id) VALUES(1);

SELECT id, dt, SYSDATETIMEOFFSET() 
FROM @t;

自2016年以来,您可以使用AT TIME ZONE https://docs.microsoft.com/zh-cn/sql/t-sql/queries/at-time-zone-transact-sql?view=sql-server-2017

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM