
将 SQL Server 2008 DateTimeOffset 转换为具有偏移调整的 DateTime
使用数据库时,可能需要转换数据类型以确保兼容性或促进数据分析。一种常见的转换涉及将 DATETIMEOFFSET 字段更改为 DATETIME 字段,同时根据指定的偏移量重新计算时间。本指南提供了有效完成此转换的步骤。
转换过程
从 DATETIMEOFFSET 到 DATETIME 的转换涉及以下过程:
-
使用CONVERT函数:使用CONVERT函数转换DATETIMEOFFSET值转换为样式 1 的 DATETIME2 数据类型,在转换为 UTC 时保留日期和时间。
1 | CONVERT(datetime2, @created_on, 1)
|
登录后复制
-
转换回 DATETIMEOFFSET: 保留以 DATETIMEOFFSET 格式调整时间,将 DATETIME2 值转换回 DATETIMEOFFSET 并指定偏移量00:00。
1 | CONVERT(datetimeoffset, CONVERT(datetime2, @created_on, 1))
|
登录后复制
转换示例
让我们考虑以下 DATETIMEOFFSET 值:
1 | @created_on = '2008-12-19 17:30:09.1234567 +11:00'
|
登录后复制
将此值转换为使用 CONVERT 和 CONVERT 函数的 DATETIME 会产生以下结果值:
1 2 | CONVERT(datetime2, @created_on, 1) = '2008-12-19 06:30:09.12'
CONVERT(datetimeoffset, CONVERT(datetime2, @created_on, 1)) = '2008-12-19 06:30:09.1234567 +00:00'
|
登录后复制
从示例中可以看出,转换过程会考虑偏移量 ( 11:00) 重新计算时间,并将值转换为 UTC ( 00:00)。
以上是如何将 SQL Server 2008 DateTimeOffset 转换为具有偏移调整的 DateTime?的详细内容。更多信息请关注PHP中文网其他相关文章!