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



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

/* 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 语句使用到空表中,然后重命名这些表可能会更容易。如果仅用于显示目的,则只能使用视图来完成转换。

您是否需要考虑夏令时?那么转换可能会有点棘手。

我做了一些工作来补偿 DST,但它运行良好。 我正在将 UTC 转换为太平洋,并在 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

相关内容

  • 没有找到相关文章

最新更新