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

Salut je suis nouveau à Oracle. Comment puis-je faire une simple déclaration, par exemple obtenir l'identification du produit à partir des 30 derniers jours, ou 20 jours Date d'achat?

SELECT productid FROM product
WHERE purchase_date ? 
27
demandé sur JeremyS 2011-03-06 16:39:54

6 réponses

SELECT productid FROM product WHERE purchase_date > sysdate-30
52
répondu jgrabowski 2011-03-06 13:42:56

Le plus simple serait de spécifier

sysdate-30;

rappelez-vous que cette date-sys a la composante de temps ci-dessus, donc ce sera des commandes d'achat plus récentes que 03-06-2011 8:54 AM basé sur le temps maintenant.

si vous voulez supprimer le conponent de temps lors de la comparaison..

SELECT productid FROM product where purchase_date > trunc(sysdate-30);

Et (en fonction de vos commentaires), si vous souhaitez spécifier une date particulière, assurez-vous que vous utilisez to_date et ne vous fiez pas aux paramètres de session par défaut.

to_date ('03/06/2011', 'mm/JJ / yyyy')

et en ce qui concerne le commentaire entre (sysdate-30) - (sysdate), pour les commandes vous devriez être ok avec usin juste la condition sysdate à moins que vous puissiez avoir des commandes avec order_dates dans le futur.

11
répondu Rajesh Chamarthi 2011-03-06 13:59:10

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

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

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

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

7
répondu Gabriele D'Antona 2011-03-06 17:31:38
SELECT COUNT(job_id) FROM jobs WHERE posted_date < NOW()-30;

Now() renvoie la Date et L'heure courante.

1
répondu sinethr 2014-01-04 12:15:52

essayez ceci: en utilisant ceci vous pouvez sélectionner des données des 30 derniers jours

SELECT
    *
FROM
    product
WHERE
    purchase_date > DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
1
répondu Faisal 2016-08-08 06:32:56
select status, timeplaced 
from orders 
where TIMEPLACED>'2017-06-12 00:00:00' 
0
répondu srinivas 2017-06-16 20:19:44