Teradata:如何将TIMESTAMP(6)字段值转换为GMT?

问题描述 投票:1回答:2

我有一个表格,其列定义为TIMESTAMP(6)。我需要对此列中的所有时间值进行质量转换,从EST到GMT。我该怎么做?

timezone teradata gmt
2个回答
3
投票
/* EST is GMT -5:00:00 - To convert add 5 Hours to each timestamp */ 

select timestamp '2012-11-21 18:50:00' + interval '5:00:00' hour to second;

如何将此应用于您的数据部分取决于您所谈论的数据量。将MERGE INTO SQL语句用于空表然后重命名表可能更容易。如果仅用于显示目的,您只需使用视图即可完成转换。

您需要考虑夏令时吗?转换可能会有点棘手。


0
投票

我做了一些工作以补偿DST,但它运作良好。我正在从UTC转换到Pacific并在Teradata SQL Assist中工作。

select
cast( a.strt_dt_tm as date) as BaseDt,
case 
when BaseDt <   '2018-03-11' then a.strt_dt_tm - interval '8:00:00' hour to second
when BaseDt>=  '2018-03-11' then a.strt_dt_tm - interval '7:00:00' hour to second
end as Offsetz,
cast(offsetz as date) as OffSt_Dt,
from Time_Table
© www.soinside.com 2019 - 2024. All rights reserved.