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

时间:2012-11-21 20:58:44

标签: timezone teradata gmt

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

2 个答案:

答案 0 :(得分: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语句用于空表然后重命名表可能更容易。如果仅用于显示目的,您只需使用视图即可完成转换。

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

答案 1 :(得分: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