Vertica变化Local时间到GMT时间

在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时间

版权声明:本文博客原创文章,博客,未经同意,不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值