将从子查询派生的小时数添加到我的时间戳

时间:2016-03-21 15:52:52

标签: netezza

我的下面的查询在我当前的时间增加了四天,但我需要添加四个小时。我正在添加UTC偏移量。

select ,REQUEST_TIME,
to_char(timestamp((REQUEST_TIME - cast(select extract(hours from
(select TIMEZONE(current_timestamp, 'America/New_York','Etc/GMT')) - current_timestamp)))) ,
'YYYY-MM-DD HH24') as request_time_EST from Table

1 个答案:

答案 0 :(得分:0)

你遇到的问题是,小时的EXTRACT结果以整数形式返回(参见下面的B1),然后从REQUEST_TIME中减去该结果,减去给出你没想到的结果的天数或者想要(参见下面的C2)。

我相信,您所寻找的内容需要将B1值转换为小时间隔(参见下面的D1)。

选择request_time, TIMEZONE(current_timestamp,' America / New_York','等等/ GMT') -

current_timestamp A1,
extract(hours from TIMEZONE(current_timestamp, 'America/New_York','Etc/GMT') - current_timestamp) B1,
request_time - extract(hours from TIMEZONE(current_timestamp, 'America/New_York','Etc/GMT') - current_timestamp) C1,
request_time - cast( extract(hours from TIMEZONE(current_timestamp, 'America/New_York','Etc/GMT') - current_timestamp) || ' hours ' as interval) D1
from table1;

TESTDB.ADMIN(ADMIN)-> from table1;
    REQUEST_TIME     |    A1    | B1 |     C1     |         D1          
---------------------+----------+----+------------+---------------------
 2016-01-31 12:00:00 | 04:00:00 |  4 | 2016-01-27 | 2016-01-31 08:00:00
(1 row)

您提到在问题和示例代码中使用子选择,但我在这种情况下没有看到需要子选择。