J'ai une petite question à propos de SQL Server: comment obtenir les informations des 30 derniers jours à partir de ce tableau
Échantillon de données:
Product
:
Pdate
----------
2014-11-20
2014-12-12
2014-11-10
2014-12-13
2014-10-12
2014-11-15
2014-11-14
2014-11-16
2015-01-18
Sur la base de cette table de données, je veux une sortie comme ci-dessous
pdate
-------
2014-11-20
2014-12-12
2014-12-13
2014-11-16
J'ai essayé cette requête
SELECT *
FROM product
WHERE pdate >= DATEADD(day, -30, getdate()).
mais cela donne maintenant exactement le résultat. S'il vous plaît dites-moi comment résoudre ce problème dans SQL Server
Ajouter une condition supplémentaire dans where clause
SELECT * FROM product
WHERE pdate >= DATEADD(day,-30, getdate())
and pdate <= getdate()
Ou utilisez DateDiff
SELECT * FROM product
WHERE DATEDIFF(day,pdate,getdate()) between 0 and 30
Vous pouvez utiliser DateDiff
pour cela. La clause where dans votre requête ressemblerait à ceci:
where DATEDIFF(day,pdate,getdate()) < 31
Je ne sais pas pourquoi toutes ces réponses compliquées sont ici mais c'est ce que je ferais
where pdate >= CURRENT_TIMESTAMP -30
OU WHERE CAST(PDATE AS DATE) >= GETDATE() -30
Cela devrait bien fonctionner !!!
SELECT * FROM product WHERE pdate BETWEEN datetime('now', '-30 days') AND datetime('now', 'localtime')