web-dev-qa-db-fra.com

Méthode GETDATE () pour DB2

J'essaie depuis un certain temps maintenant d'obtenir une méthode similaire à GETDATE() dans DB2 pour i. Jusqu'à présent, j'ai trouvé ce qui suit:

current date
current timestamp
current time

Serait-il possible pour moi de:

 select specific, columns
 from table
 where datefield = current date - 1 day

Est-ce le moyen le plus efficace ou y a-t-il un moyen que je n'ai peut-être pas encore trouvé?

ÉDITER:

J'ai actuellement ceci:

WHERE datefield = - days(date('2013-10-28'))

bien que cela ne soit pas utile car je devrai le modifier chaque jour où la requête s'exécute.

Venons-en maintenant à ceci:

WHERE datefield = VARCHAR_FORMAT(CURRENT TIMESTAMP, 'YYYYMMDD') - 1

Sauf que cela ne fonctionnera pas le premier jour du mois car 1 - 1 = 0 et il n'y a pas de jour 0 dans un mois ...

10
DeanMWake

Cela vous donnera la date d'hier:

SELECT CURRENT DATE - 1 DAY FROM sysibm.sysdummy1
25
Benny Hill

Si vous souhaitez connaître une certaine plage de dates comme alternative, vous pouvez essayer la fonction scalaire TIMESTAMPDIFF, lire le diagramme de syntaxe Ignorer le diagramme de syntaxe visuelle Le paramètre: 16 indique qu'il sera évalué par jour

L'exemple suivant détermine une plage de 70 jours à partir de maintenant.

WHERE (TIMESTAMPDIFF(16, CHAR(SYSDATE- CURRENT DATE)) )<70 AND (TIMESTAMPDIFF(16, CHAR(SYSDATE- CURRENT DATE)) ) > -1

vous pouvez consulter ce lien pour tous les détails sur cette méthode prise en charge par DB2: http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2 .luw.sql.ref.doc/doc/r0000861.html? cp = SSEPGG_9.7.0% 2F2-10-3-2-155

3
Israelm