我希望将表格的时间戳(GMT)显示为夏令时的CST。
从3月2日星期日凌晨2:00到11月1日星期日凌晨2:00 =时间戳(GMT) - 5小时 一年中的其他日子=时间戳(GMT) - 6小时
似乎工作正常。现在有另一个问题。 Teradata表具有CST时间戳。另一个表(不同的源,但加载到teradata登台表)有GMT。两个时间戳看起来都很相似。但是当我减去两者时,它并没有给我NULL值。时间戳看起来像12/20/2012 08:30:00.000000
答案 0 :(得分:1)
假设数据类型是没有TIME ZONE的TIMESTAMP,您可以简单地指定所需的时区(在TD13.10 +中)。 “America Central”是一个预定时区,夏令时:
CREATE VOLATILE TABLE vt ( ts TIMESTAMP(0)) ON COMMIT PRESERVE ROWS;
INSERT INTO vt (TIMESTAMP'2013-03-10 07:59:00');
INSERT INTO vt (TIMESTAMP'2013-03-10 08:01:00');
INSERT INTO vt (TIMESTAMP'2013-11-03 06:59:00');
INSERT INTO vt (TIMESTAMP'2013-11-03 07:01:00');
SEL ts, ts AT 'America Central' AS CST
FROM vt
ORDER BY 1;
*** Query completed. 4 rows found. 2 columns returned.
*** Total elapsed time was 1 second.
ts CST
------------------- -------------------------
2013-03-10 07:59:00 2013-03-10 01:59:00-06:00
2013-03-10 08:01:00 2013-03-10 03:01:00-05:00
2013-11-03 06:59:00 2013-11-03 01:59:00-05:00
2013-11-03 07:01:00 2013-11-03 01:01:00-06:00