2013-05-12 122 views
8

und ich habe Codes wie folgt aus:SQL wo Datum von heute Minus- und Plus-Tage

select CUS_Id, CUS_Name, CUS_JoinDate 

    from CUSTOMER 

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

Wie kann ich es machen, ‚wo‘ wird CUS_JoinDate ab heute Datum angeben werden (minus 1 Monat und heute + 1 Monat)?

Also jedes Mal, wenn ich den Bericht ausführen hängt es vom aktuellen Datum ab und es wird automatisch minus und plus 30 Tage.

Danke,

Antwort

15

Versuch,

WHERE CUS_joinDate BETWEEN DATEADD(mm,-1,GETDATE()) AND DATEADD(mm,1,GETDATE()) 
+0

Dies funktioniert ..^_^.. Danke .. – Captain16

+0

Sie sind willkommen ':)' –

+0

„Give Ich melde mich aus der Zukunft! " –

0

Versuchen Sie dieses:

select CUS_Id, CUS_Name, CUS_JoinDate 

    from CUSTOMER 

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

Wenn Sie jedoch Monate hinzufügen müssen/Jahr bisher, müssen Sie DATEADD() Funktion verwenden.

Es kann eingesetzt werden als:

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' 

Ergebnis Set:

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