在 Azure SQL 数据仓库中转换时区
Convert timezone in Azure SQL Data Warehouse
我有一个来自 US/Pacific
时区的 DATETIME 列,但它不是这样编码的。如何将其转换为 Azure SQL 数据仓库中的 UTC
时区?
AT DATETIME
T-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
.
在没有上下文的情况下很难回答,但我相信您可以 cast or convert the column to whatever date/time 输入您想要的内容。由于缺乏上下文,很难再说明时区。
现在(冬天)我们处于太平洋标准时间,即 UTC – 8 小时。因此,将日期 2013-04-02 08:02:47.000000 转换为 UTC 将是 2013-04-02 16:02:47.0000000 value.
声明@mydate datetime2 = '2013-04-02 08:02:47.000000'
select dateadd(hh, 8, @mydate) 作为 utcdate
因为我的数据存储在 'US/Pacific' 中,所以我使用 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
我有一个来自 US/Pacific
时区的 DATETIME 列,但它不是这样编码的。如何将其转换为 Azure SQL 数据仓库中的 UTC
时区?
AT DATETIME
T-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
.
在没有上下文的情况下很难回答,但我相信您可以 cast or convert the column to whatever date/time 输入您想要的内容。由于缺乏上下文,很难再说明时区。
现在(冬天)我们处于太平洋标准时间,即 UTC – 8 小时。因此,将日期 2013-04-02 08:02:47.000000 转换为 UTC 将是 2013-04-02 16:02:47.0000000 value.
声明@mydate datetime2 = '2013-04-02 08:02:47.000000' select dateadd(hh, 8, @mydate) 作为 utcdate
因为我的数据存储在 'US/Pacific' 中,所以我使用 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