码迷,mamicode.com
首页 > 其他好文 > 详细

Vertica转换Local时间到GMT时间

时间:2014-11-19 08:38:41      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   color   使用   sp   数据   on   

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

Vertica转换Local时间到GMT时间

标签:style   blog   http   ar   color   使用   sp   数据   on   

原文地址:http://blog.csdn.net/kongxx/article/details/41276303

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!