web-dev-qa-db-fra.com

Clause Oracle SQL Where pour rechercher des enregistrements de date antérieurs à 30 jours

Je souhaite rechercher des enregistrements dans une table (Oracle SQL) à l'aide du champ de date de création dans lequel les enregistrements datent de plus de 30 jours. Ce serait bien de trouver des enregistrements en utilisant des opérateurs comme> mais si quelqu'un peut suggérer une instruction SQL where clause rapide pour trouver des enregistrements de plus de 30 jours, ce serait bien. Veuillez suggérer la syntaxe Oracle car c'est ce que j'utilise.

30
anwarma

Utilisation:

SELECT *
  FROM YOUR_TABLE
 WHERE creation_date <= TRUNC(SYSDATE) - 30

SYSDATE renvoie la date et l'heure; TRUNC réinitialise la date à minuit afin que vous puissiez l'omettre si vous voulez que le creation_date c'est-à-dire 30 jours précédents, y compris l'heure actuelle.

Selon vos besoins, vous pouvez également envisager d'utiliser ADD_MONTHS :

SELECT *
  FROM YOUR_TABLE
 WHERE creation_date <= ADD_MONTHS(TRUNC(SYSDATE), -1)
53
OMG Ponies