2017-07-12 47 views
0

我有時間戳字符串,看起來像這裏的例子: 2017-07-12T01:51:12.732-0600。是否有任何功能/功能組合我可以用它來準確地將其轉換爲UTC?如何在Redshift中將此特定時間戳格式轉換爲UTC?

輸出應該是2017-07-12 07:51:12.732000。我試過使用to_timestampconvert_timezone。顯然,後者失敗了,但前者也是如此,而我在智慧的結尾。幫幫我?

回答

1

我們也可以將字符串直接打上時間戳,然後設置源時區在這樣convert_timezone功能(注意,偏移正負符號是相反時區):

select convert_timezone('UTC+06','utc','2017-07-12T01:51:12.732-0600'::timestamp)

如果-0600部分是不同的,你可以構造'UTC+06'部分動態像這樣

with times as (
    select '2017-07-12T01:51:12.732-0600'::varchar(28) as ts_col 
) 
select convert_timezone('utc'+(substring(ts_col from 24 for 3)::integer*(-1))::varchar(3),'utc',ts_col::timestamp) 
from times 
+0

太棒了!謝謝! :) – CodingInCircles

相關問題