为什么这两个都返回0?
从_v_dual
中选择提取(从日期开始的日期(' 08DEC2015') - current_timestamp)从_v_dual
中选择提取(日期为日期(' 09DEC2015') - current_timestamp)今天是美国东部时间8月20日上午1点50分,我写这篇文章。
答案 0 :(得分:1)
DATE功能正常工作。 DAY的EXTRACT返回零,因为在两种情况下,从硬编码日期函数中减去current_timestamp时返回的间隔小于一天。
TESTDB.ADMIN(ADMIN)=> select date('08DEC2015') - current_timestamp;
?COLUMN?
-----------
-15:30:12
(1 row)
TESTDB.ADMIN(ADMIN)=> select date('09DEC2015') - current_timestamp;
?COLUMN?
----------
08:29:42
(1 row)
如果间隔大于24小时,则您将从表达式中提取非零DAY值。顺便说一句,请注意"来自_v_dual"对于Netezza中的SELECT来说是不必要的。
TESTDB.ADMIN(ADMIN)=> select date('10DEC2015') - current_timestamp;
?COLUMN?
----------------
1 day 08:26:11
(1 row)
TESTDB.ADMIN(ADMIN)=> select EXTRACT (DAY FROM date('10DEC2015') - current_timestamp);
DATE_PART
-----------
1
(1 row)