Vertica轉換Local時間到GMT時間,verticagmt
在Vertica的資料庫的使用過程中碰到這麼一種情境,程式從不同時區的叢集中收集資料寫入同一張表,然後我們需要把這些資料按照GMT時間來顯示。此時我們可以通過Vertica提供TIME ZONE轉換功能來達到這個效果。
首先看一下Vertica預設的TimeZone
SHOW TIMEZONE;
這裡假定Vertica的預設TimeZone是“Asia/Shanghai”
SET TIMEZONE TO 'Asia/Shanghai';
假定有一張表,TS列儲存時間戳記,TZ列儲存所在時區,如下
CREATE TABLE T (TS TIMESTAMP, TZ VARCHAR(32));
然後造兩條資料分別使用America/New_York和Asia/Shanghai時區
INSERT INTO T VALUES(TIMESTAMP'2014-11-11 00:00:00', 'America/New_York');INSERT INTO T VALUES(TIMESTAMP'2014-11-11 00:00:00', 'Asia/Shanghai');
此時可以通過下面的SQL來把各個Local時區的時間轉換到GMT時區
SELECT (TS || ' ' || TZ)::TIMESTAMP AS 'LOCAL TIME', (TS || ' ' || TZ)::TIMESTAMP WITH TIME ZONE AT TIME ZONE 'GMT' AS 'GMT TIME'FROM T; LOCAL TIME | GMT TIME---------------------+--------------------- 2014-11-11 13:00:00 | 2014-11-11 05:00:00 2014-11-11 00:00:00 | 2014-11-10 16:00:00
原文連結:Vertica轉換Local時間到GMT時間