web-dev-qa-db-fra.com

SQL où Date à partir d'aujourd'hui moins et plus de jours

J'ai des codes comme celui-ci:

  select CUS_Id, CUS_Name, CUS_JoinDate

  from CUSTOMER

  where CUS_joinDate between '04-12-2013' and '06-12-2013'

Comment puis-je le déterminer 'où' CUS_JoinDate sera déclaré à compter de la date du jour (moins 1 mois et aujourd'hui + 1 mois)?

Ainsi, chaque fois que je produirai le rapport, cela dépendra de la date du jour et sera automatiquement de moins 30 jours.

8
Captain16

essayer,

WHERE CUS_joinDate BETWEEN DATEADD(mm,-1,GETDATE()) AND DATEADD(mm,1,GETDATE())
15
John Woo

Vous pouvez utiliser CURDATE () et DATEADD ()

DATES SQL W3SCHOOLS

3
Ben C Wang

Essaye celui-là:

 select CUS_Id, CUS_Name, CUS_JoinDate

  from CUSTOMER

  where CUS_joinDate BETWEEN DATEADD(DAY,-1,GETDATE()) AND DATEADD(DAY,1,GETDATE())

Toutefois, si vous devez ajouter des mois/années à ce jour, vous devez utiliser la fonction DATEADD ().

Il peut être utilisé comme:

SELECT      GETDATE(), 'Today'
UNION ALL
SELECT      DATEADD(DAY,  10, GETDATE()), '10 Days Later'
UNION ALL
SELECT      DATEADD(DAY, –10, GETDATE()), '10 Days Earlier'
UNION ALL
SELECT      DATEADD(MONTH,  1, GETDATE()), 'Next Month'
UNION ALL
SELECT      DATEADD(MONTH, –1, GETDATE()), 'Previous Month'
UNION ALL
SELECT      DATEADD(YEAR,  1, GETDATE()), 'Next Year'
UNION ALL
SELECT      DATEADD(YEAR, –1, GETDATE()), 'Previous Year'

Jeu de résultats:

2011-05-20 21:11:42.390 Today
2011-05-30 21:11:42.390 10 Days Later
2011-05-10 21:11:42.390 10 Days Earlier
2011-06-20 21:11:42.390 Next Month
2011-04-20 21:11:42.390 Previous Month
2012-05-20 21:11:42.390 Next Year
2010-05-20 21:11:42.390 Previous Year
0
Muhammad Awais