sql - 如何将 Sql Server 2008 DateTimeOffset 转换为 DateTime

标签 sql sql-server sql-server-2008 datetime datetimeoffset

我希望将具有 DATETIMEOFFSET 字段的表转换为 DATETIME 字段,但通过注意偏移量来重新计算时间。实际上,这会将值转换为 UTC

例如。

CreatedOn: 2008-12-19 17:30:09.0000000 +11:00

将被转换为

CreatedOn: 2008-12-19 06:30:09.0000000

CreatedOn: 2008-12-19 06:30:09.0000000 + 00:00 -- that's a `DATETIMEOFFSET`, but `UTC`.

干杯:)

最佳答案

使用几乎任何样式进行转换都会导致 datetime2 值转换为 UTC。
此外,从 datetime2 到 datetimeoffset 的转换只需设置 +00:00 处的偏移量,如下所示,因此这是从 Datetimeoffset(offset!=0) 转换为 Datetimeoffset(+00:00) 的快速方法

declare @createdon datetimeoffset
set @createdon = '2008-12-19 17:30:09.1234567 +11:00'

select CONVERT(datetime2, @createdon, 1)
--Output: 2008-12-19 06:30:09.12

select convert(datetimeoffset,CONVERT(datetime2, @createdon, 1))
--Output: 2008-12-19 06:30:09.1234567 +00:00

关于sql - 如何将 Sql Server 2008 DateTimeOffset 转换为 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4953903/

相关文章:

sql-server - 从列值返回多行

mysql - 如何加速具有多个连接的 Group By 语句?

c# - 我的 gridview 中有 SQL Insert 问题

sql - 合并 T-SQL 中的连续行组并对每组中的值求和

sql - TSQL - 通过引用其他列来填充条目上方和下方的值

sql - 如何在运行总计达到零的帐户上应用状态

sql-server - CTRL + K、CTRL + F(格式代码)在 MS SQL Server 中不起作用

c++ - ODBC : Array of Parameters - ignoring parameter

java - SYS.ODCIVARCHAR2LIST 的字段类型?

php - 如何在 SQL 中合并两个查询的结果?