46 votes

Requête SQL pour récupérer les données des 30 derniers jours ?

Bonjour, je suis nouveau sur Oracle. Comment puis-je faire une simple déclaration, par exemple obtenir l'identifiant du produit à partir de la date d'achat des 30 ou 20 derniers jours ?

 SELECT productid FROM product
WHERE purchase_date ? 

78voto

jgrabowski Points 1431
SELECT productid FROM product WHERE purchase_date > sysdate-30

10voto

friol Points 4806

Faites attention à un aspect lorsque vous faites "purchase_date>(sysdate-30)": "sysdate" est la date, l'heure, la minute et la seconde actuelles. Donc "sysdate-30" n'est pas exactement "il y a 30 jours", mais "il y a 30 jours à cette heure exacte".

Si vos dates d'achat ont 00.00.00 en heures, minutes, secondes, mieux vaut faire :

 where trunc(purchase_date)>trunc(sysdate-30)

(cela ne prend pas en compte les heures, minutes et secondes).

2voto

Faisal Points 2586

Essayez ceci : en utilisant cela, vous pouvez sélectionner les données des 30 derniers jours

 SELECT
    *
FROM
    product
WHERE
    purchase_date > DATE_SUB(CURDATE(), INTERVAL 1 MONTH)

1voto

sinethr Points 11
SELECT COUNT(job_id) FROM jobs WHERE posted_date < NOW()-30;

Now() renvoie la date et l'heure actuelles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X