我有一个表,其列定义为TIMESTAMP(6)
. 我需要将此列中的所有时间值从 EST 转换为 GMT。我该怎么做?
问问题
3950 次
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 语句然后重命名表可能更容易。如果仅用于显示目的,您可以只使用视图来完成转换。
您是否需要考虑夏令时?那么转换可能会有点棘手。
于 2012-11-21T21:56:03.533 回答
0
我做了一些工作来补偿 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
于 2018-03-01T17:21:23.587 回答