Salut, je suis nouveau à Oracle. Comment puis-je faire une simple déclaration, par exemple obtenir un identifiant de produit des 30 ou 20 derniers jours d'achat?
SELECT productid FROM product
WHERE purchase_date ?
SELECT productid FROM product WHERE purchase_date > sysdate-30
Le moyen le plus simple serait de spécifier
SÉLECTIONNER le produit à partir du produit où date_achat> sysdate-30;
Rappelez-vous que la date sysdate ci-dessus a la composante heure, il s'agira donc de commandes plus récentes que le 03-06-2011, 08:54 AM, en fonction de l'heure actuelle.
Si vous souhaitez supprimer le délai 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 d’utiliser to_date et de ne pas vous fier aux paramètres de session par défaut.
SÉLECTIONNER le produit à partir du produit où date_achat> to_date ('03/06/2011 ',' mm/jj/aaaa ')
Et en ce qui concerne le commentaire entre (sysdate-30) - (sysdate), pour les commandes, vous devriez être d'accord avec la condition de sysdate à moins que vous ne puissiez avoir des commandes avec order_dates à l'avenir.
Faites attention à un aspect en faisant "Purchase_date> (sysdate-30)": "sysdate" est la date actuelle, heure, minute et seconde. 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 sont à 00.00.00 en heures, minutes, secondes, nous ferons mieux:
where trunc(purchase_date)>trunc(sysdate-30)
(cela ne prend pas des heures, des minutes et des secondes en compte).
SELECT COUNT(job_id) FROM jobs WHERE posted_date < NOW()-30;
Now()
renvoie la date et l'heure actuelles.
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)