1

我有一个来自US/Pacific时区的 DATETIME 列,但它不是这样编码的。如何UTC在 Azure SQL 数据仓库中将此转换为时区?

AT DATETIMET-SQL 函数似乎最合适,但 Azure SQL 数据仓库不支持它 。https://docs.microsoft.com/en-us/sql/t-sql/queries/at-time-zone-transact-sql

例如,一条记录的 DATETIME 为2013-04-02 08:02:47.000000。转换后应该是2013-04-02 15:02:47.000000

4

3 回答 3

1

因为我的数据存储在“美国/太平洋”中,所以我曾经TODATETIMEOFFSET()将特定的偏移量添加到数据中。一旦存储为DATETIMEOFFSET类型,服务器将其视为 UTC 时间,但时区偏移量仍然可用。

SELECT TODATETIMEOFFSET(time_in_pt, '-08:00') as time_with_pt_timezone ...

https://docs.microsoft.com/en-us/sql/t-sql/functions/todatetimeoffset-transact-sql

于 2017-11-28T21:37:17.450 回答
0

现在(冬天)我们处于太平洋标准时间,即 UTC – 8 小时。因此,将您的日期 2013-04-02 08:02:47.000000 转换为 UTC 将是 2013-04-02 16:02:47.0000000 值。

声明 @mydate datetime2 = '2013-04-02 08:02:47.000000' select dateadd(hh, 8, @mydate) as utcdate

于 2017-11-21T02:02:23.637 回答
0

在没有上下文的情况下很难回答,但我相信您可以将列转换或转换为您想要的任何日期/时间类型。由于缺乏上下文,很难说时区的原因。

于 2017-11-21T01:44:12.707 回答