我的下面的查询在我当前的时间增加了四天,但我需要添加四个小时。我正在添加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
答案 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)
您提到在问题和示例代码中使用子选择,但我在这种情况下没有看到需要子选择。