【发布时间】:2019-03-12 18:27:28
【问题描述】:
作为 ETL 到 Redshift 的一部分,在其中一个源表中,有 2 列:
original_timestamp - TIMESTAMP: 记录插入到哪个区域的当地时间
original_timezone_offset - Varchar: 与 UTC 的偏移量
数据看起来像这样:
original_timestamp original_timezone_offset 2011-06-22 11:00:00.000000 -0700 2014-11-29 17:00:00.000000 -0800 2014-12-02 22:00:00.000000 +0900 2011-06-03 09:23:00.000000 -0700 2011-07-28 03:00:00.000000 -0700 2011-05-01 01:30:00.000000 -0700
在我的目标表中,我需要将其转换为 UTC(使用偏移量)。我该怎么做?
到目前为止,我已经尝试了多种方法,但 dateadd() 似乎是最接近的解决方案。但是dateadd() 的问题是,当我说:
SELECT original_timestamp, original_timezone_offset
,dateadd(H, original_timezone_offset, original_timestamp) as original_utc_time
它在原始时间戳中添加/减去 '700'/'800' 小时而不是 7/8 小时,因为偏移量是 VARCHAR 并且值类似于:-0700 等。
以前有人见过这个问题吗?感谢任何帮助/输入。谢谢。
【问题讨论】:
-
是偏移列文本吗?
-
是的,约翰。这是一个文本
标签: amazon-web-services amazon-redshift timezone-offset