首页 > 数据库 > mysql教程 > 如何在保留偏移量的同时将 SQL Server 2008 DATETIMEOFFSET 转换为 DATETIME?

如何在保留偏移量的同时将 SQL Server 2008 DATETIMEOFFSET 转换为 DATETIME?

Susan Sarandon
发布: 2024-12-29 21:12:15
原创
1019 人浏览过

How to Convert SQL Server 2008 DATETIMEOFFSET to DATETIME While Preserving the Offset?

在保留偏移量的同时将 DATETIMEOFFSET 转换为 DateTime

在 SQL Server 2008 中,将 DATETIMEOFFSET 字段转换为 DATETIME 字段通常会导致丢失由于偏移而产生的时间信息。但是,有一种方法可以在保留偏移量的同时转换值,有效地将其转换为 UTC。

此转换的关键在于使用带有正确样式参数的 CONVERT 函数。 style 参数指定如何执行转换。为此,我们需要使用样式 1:

SELECT CONVERT(datetime2, @createdon, 1)
登录后复制

上述查询采用 DATETIMEOFFSET 变量 (@createdon) 并使用样式 1 将其转换为 DATETIME2 值。此样式将 DATETIMEOFFSET 值转换为通过减去偏移量得到 UTC 中的 DATETIME2 值。

例如,考虑以下 DATETIMEOFFSET value:

2008-12-19 17:30:09.0000000 +11:00
登录后复制

如果我们使用样式 1 转换此值,我们会得到:

2008-12-19 06:30:09.0000000
登录后复制

此结果采用 UTC 时间,有效地消除了偏移量。

请注意,使用样式 1 从 DATETIME2 转换为 DATETIMEOFFSET 只是将偏移量设置为 00:00。这可以用作将具有非零偏移量的 DATETIMEOFFSET 值转换为 UTC 格式的 DATETIMEOFFSET 值的快速方法:

SELECT convert(datetimeoffset,CONVERT(datetime2, @createdon, 1))
登录后复制

以上是如何在保留偏移量的同时将 SQL Server 2008 DATETIMEOFFSET 转换为 DATETIME?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板