2016-07-20 2 views
-1

I nächsten vier Monate Daten aus SQL ServerSQL-Abfrage für den nächsten 4 Monate Anzeige

column_name 
2016-10-31 
2016-07-31 
2016-08-31 
2016-09-30 
2017-10-31 
2015-07-31 
2019-08-31 
2017-09-30 
2016-11-30 

Ich möchte eine Ausgabe wie diese

2016-10-31 
2016-08-31 
2016-09-30 
2016-11-30 

Aktuelle Abfrage drucken möchten:

SELECT relieve_date 
FROM table 
WHERE DATEPART(m, relieve_date) = DATEPART(m, DATEADD(m, +4, getdate())) AND DATEPART(yyyy, relieve_date) = DATEPART(yyyy, DATEADD(m, -1, getdate())) 
+1

Etwas wie folgt aus: 'wo col> = getdate() und col <= dateadd (Monat, 6, getdate()) ' –

+1

SO ist kein Code-Schreibdienst. Ich möchte ein Pferd mit 8 Beinen, aber Sie können nicht immer bekommen, was Sie wollen. – HoneyBadger

+0

ich versuchte unter Abfrage ,,, SELECT relieve_date FROM Tabelle WHERE DATEPART (m, relieve_date) = DATEPART (m, DATEADD (m, 4, getdate())) UND DATEPART (yyyy, relieve_date) = DATEPART (yyyy , DATEADD (m, -1, getdate())) – venkat

Antwort

0

Ihre Abfrage ist geschlossen, benötigt aber einen Bereich (<=, >=) statt =. Sie werden auch nicht die Jahreszahl benötigen, wenn Sie DATEADD verwenden:

SELECT relieve_date 
FROM table 
WHERE relieve_date >= DATEADD(month, 1, getdate()) 
AND relieve_date <= DATEADD(month, 4, getdate()) 

Eine weitere Option ist BETWEEN, die verwendet (<=, >=) Logik zu:

SELECT relieve_date 
FROM table 
WHERE relieve_date BETWEEN DATEADD(month, 1, getdate()) AND DATEADD(month, 4, getdate()) 
+0

hervorragend !!! Vielen Dank Chef ,,,,, – venkat

+0

Wenn ich nächste sechs Monate in SQL Abfrage – venkat

+0

@ Venkat wollen Kein Problem. Ein Tipp, aber ... fügen Sie Ihre Frage von Anfang an immer zu Ihrer Frage hinzu, sie wird besser empfangen. :) Und für 6 Monate - ändern Sie einfach die 4 in 'DATEADD (Monat, 4, getdate())' zu einer 6, oder wie viele kommende Monate Sie sehen möchten. –

Verwandte Themen