it-swarm.com.de

Erhalten Sie die letzten 30 Tage Datensätze vom heutigen Datum in SQL Server

Ich habe eine kleine Frage zu SQL Server: Wie erhält man die letzten 30 Tage Informationen aus dieser Tabelle? 

Beispieldaten:

Product:

Pdate
----------
2014-11-20
2014-12-12
2014-11-10
2014-12-13
2014-10-12
2014-11-15
2014-11-14
2014-11-16
2015-01-18

Basierend auf diesen Tabellendaten möchte ich wie folgt ausgeben

pdate
-------
2014-11-20
2014-12-12
2014-12-13
2014-11-16

Ich habe diese Abfrage versucht 

SELECT * 
FROM product 
WHERE pdate >= DATEADD(day, -30, getdate()).

aber es gibt jetzt genau das ergebnis. Bitte erklären Sie mir, wie Sie dieses Problem in SQL Server lösen können

11
user3457912

Fügen Sie eine weitere Bedingung in where clause hinzu.

SELECT * FROM  product 
WHERE pdate >= DATEADD(day,-30, getdate()) 
and   pdate <= getdate()

Oder benutze DateDiff

SELECT * FROM  product 
WHERE DATEDIFF(day,pdate,getdate()) between 0 and 30 
25

Sie können DateDiff dafür verwenden. Die where-Klausel in Ihrer Abfrage würde folgendermaßen aussehen:

where DATEDIFF(day,pdate,getdate()) < 31
4
danish

Ich weiß nicht, warum all diese komplizierten Antworten hier erscheinen, aber das würde ich tun

where pdate >= CURRENT_TIMESTAMP -30

ODER WHERE CAST(PDATE AS DATE) >= GETDATE() -30

4
josh

sie können dies verwenden, um die Daten der letzten 30 Tage basierend auf einer Spalte abzurufen.

WHERE DATEDIFF (dateColumn, CURRENT_TIMESTAMP) ZWISCHEN 0 UND 30

Das sollte gut funktionieren !!! 

SELECT * FROM product WHERE pdate BETWEEN datetime('now', '-30 days') AND datetime('now', 'localtime')
0
Jimit Rupani

Die folgende Abfrage bezieht sich auf die Datensätze der letzten 30 Tage

Hier habe ich eine Überprüfungstabelle verwendet und review_date ist eine Spalte aus der Überprüfungstabelle

SELECT * FROM reviews WHERE DATE(review_date) >= DATE(NOW()) - INTERVAL 30 DAY
0
Pramod Amrutkar