在 SQL Server 中,DATETIMEOFFSET 值存储日期和时间,以及与 UTC 的偏移量。要在考虑偏移量的同时将 DATETIMEOFFSET 字段转换为 DATETIME 字段,从而有效地将其转换为 UTC,请考虑以下事项:
使用 CONVERT 或 CAST 将 DATETIMEOFFSET 值转换为 DATETIME2 将通过丢弃自动将该值转换为 UTC偏移量。例如:
DECLARE @createdon DATETIMEOFFSET = '2008-12-19 17:30:09.0000000 +11:00'; SELECT CONVERT(DATETIME2, @createdon, 1); -- Output: 2008-12-19 06:30:09.0000000
但是,将 DATETIMEOFFSET 转换为 DATETIME 不会将偏移量设置为 UTC。要显式转换为偏移量为 00:00 的 DATETIME,请使用 DATETIMEOFFSET 函数:
SELECT CONVERT(DATETIMEOFFSET, CONVERT(DATETIME2, @createdon, 1)); -- Output: 2008-12-19 06:30:09.0000000 +00:00
以上是如何将 SQL Server DATETIMEOFFSET 转换为 UTC DATETIME?的详细内容。更多信息请关注PHP中文网其他相关文章!