2015-12-08 1 views
0

Pourquoi ces deux retournent 0?Fonction de date Netezza ne fonctionne pas correctement

select EXTRACT (JOUR DE Date ('08DEC2015') - current_timestamp) de _v_dual

select EXTRACT (JOUR DE Date ('09DEC2015') - current_timestamp) de _v_dual

Aujourd'hui est 8Dec2015,11: 50 heures EST pendant que j'écris ceci.

Répondre

1

La fonction DATE fonctionne très bien. L'EXTRAIT du JOUR renvoie zéro, car dans les deux cas, l'intervalle renvoyé lorsque vous soustrayez le paramètre current_timestamp de la fonction de date codée en dur est inférieur à un jour.

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) 

Si vous avez un intervalle supérieur à 24 heures, alors vous extraira une valeur de jour non nulle de l'expression. En aparté, notez que "from_v_dual" est inutile pour un SELECT dans Netezza.

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

c'était génial. Merci pour le conseil _v_dual. Toujours coincé dans mes vieilles habitudes ORACLE. – Victor