J'ai une table avec un champ de date appelé oppo_installdate. Ceci est une date à l'avenir et je veux essentiellement choisir des enregistrements lorsque cette date est de 7 jours ou moins de la date actuelle. J'ai essayé de le faire avec la requête ci-dessous, mais c'est aussi une plus ancienne dates de retour de 2019, et je ne sais pas pourquoi cela se passe.
select * from [CRM_Test].[dbo].[Opportunity] where (GETDATE() >= DATEADD(day,-7, oppo_installdate))
3 Réponses :
Utilisez ci-dessous condition -
select * from [CRM_Test].[dbo].[Opportunity] where oppo_installdate>= DATEADD(day,-7, GETDATE()) and oppo_installdate<=getdate()
Chaque fois que vous utilisez un Il semble que ce que vous avez simplement vouloir est: p> Notez que où code> essaie toujours d'appliquer toutes les fonctions aux constantes ou à d'autres fonctions, jamais vos colonnes. daadd (jour, -7, oppo_installdate) code> rendra la requête non sargable et pourrait le ralentir comme des index ne pourront pas être utilisés. getDate code> renvoie un DateTime code>, donc si vous voulez à partir de minuit 7 jours, vous Utiliserait convert (date, getDate ()) code> (ou couler (getDate () comme date) code>). P> P>
Ceci devrait vous donner les enregistrements où oppo_installdate code> est de 7 jours ou moins de maintenant: SELECT *
FROM [dbo].[Opportunity]
WHERE oppo_installdate <= DATEADD(DAY, 7, GETDATE())
and oppo_installdate > getdate();