2015-12-08 31 views
0

爲什麼這兩個都返回0?Netezza日期功能不正常

選擇EXTRACT(DAY FROM日期( '08DEC2015') - CURRENT_TIMESTAMP)從_v_dual

選擇EXTRACT(DAY FROM日期( '09DEC2015') - CURRENT_TIMESTAMP)從_v_dual

今天是8Dec2015,11:美國東部時間上午10點,我寫這個。

回答

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值。另外,請注意,Netezza中的SELECT不需要「from _v_dual」。

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) 
+0

那真棒。感謝_v_dual提示。仍然停留在我以前的ORACLE習慣中。 – Victor