2017-07-01 3 views
1

Ich habe eine Datumsspalte in meiner Datenbank. Ich benutze SELECT COUNT die Zeilen zwischen heute zu berechnen und 15 Tagen:Datum auswählen ZWISCHEN Datum mit Intervall

SELECT count(date) as date 
FROM `inv` 
WHERE user_id='2' 
AND date BETWEEN CURDATE() - INTERVAL 15 DAY 
AND CURDATE() 

Diese SQL-Anweisung funktioniert. Aber jetzt möchte ich SELECT COUNT verwenden, um die Zeilen zwischen heute (-15 Tage) und vor 30 Tagen zu berechnen. Aber ich erhalte eine Fehlermeldung, wenn ich die folgende Anweisung versuchen:

SELECT count(date) as date 
FROM `inv` 
WHERE user_id='2' 
AND date BETWEEN date(CURDATE(),INTERVAL -15 day) 
AND date(CURDATE(),INTERVAL -30 day) 

Auch ich will wissen, wie ich die Zeilen SELECT kann, wo das Datum vor mehr als 30 Tagen. Kann mir jemand dabei helfen?

+0

Kann u der Fehlermeldung teilen ist, Sie werden immer –

+0

30 Tage vor früher als 15 Tage vor. Es ist wie SELECT 3 zwischen 5 und 1 – Strawberry

Antwort

1

Sie können die folgenden Zeilen verwenden, um Zeilen zwischen 15 bis 30 Tage alt zu erhalten.

SELECT count(date) as date 
FROM `inv` 
WHERE user_id=2 
AND date BETWEEN CURDATE() - INTERVAL 30 DAY 
      AND CURDATE() - INTERVAL 15 DAY 

Ähnlich können Sie unten verwenden, um Zeilen zu erhalten, die älter als 30 Tage sind. Versuchen

SELECT count(date) as date 
FROM `inv` 
WHERE user_id=2 
AND date < CURDATE() - INTERVAL 30 DAY 
+0

Es funktionierte. Vielen Dank – John

0

Diese

SELECT * FROM "table name" WHERE "user_id=2" 
         BETWEEN CURDATE() - INTERVAL 30 DAY 
         AND CURDATE() - INTERVAL 15 DAY 
Verwandte Themen