0
votes

SQL: essayer de sélectionner des enregistrements 7 jours avant la date

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))


0 commentaires

3 Réponses :


0
votes

Utilisez ci-dessous condition -

select * from [CRM_Test].[dbo].[Opportunity]
where oppo_installdate>= DATEADD(day,-7, GETDATE()) and oppo_installdate<=getdate()


0 commentaires

1
votes

Chaque fois que vous utilisez un essaie toujours d'appliquer toutes les fonctions aux constantes ou à d'autres fonctions, jamais vos colonnes. daadd (jour, -7, oppo_installdate) rendra la requête non sargable et pourrait le ralentir comme des index ne pourront pas être utilisés.

Il semble que ce que vous avez simplement vouloir est: xxx

Notez que getDate renvoie un DateTime , donc si vous voulez à partir de minuit 7 jours, vous Utiliserait convert (date, getDate ()) (ou couler (getDate () comme date) ).


0 commentaires

0
votes

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();


0 commentaires