2010-06-25 14 views
19

Wie Sie die letzten 3 Monate Datensätze aus der Tabelle erhalten.erhalten letzten drei Monate Datensätze aus Tabelle

SELECT * from table where Monat> CURRENT_DATE-120 und Monat < CURRENT_DATE um Monat;

Ich habe die obige Abfrage verwendet ist es richtig? soll ich das verwenden, um den letzten 3-Monats-Rekord von der Tabelle zu bekommen.

+0

wählen c.id credito, p.nombres, p.apellidos von creditos c, personas p wo c.solicitante = p.id und c. aprobado = true und c.fechaini zwischen CURRENT_DATE - INTERVAL '3 Monate' und CURRENT_DATE Gruppe von p.nombres, p.apellidos, c.id; –

Antwort

62

Sie können INTERVAL eingebauten Befehl verwenden

prüfen, wie das funktioniert:

SELECT CURRENT_DATE - INTERVAL '3 months' 

und Sie können Ihre SQL neu zu schreiben:

SELECT * from table where date > CURRENT_DATE - INTERVAL '3 months' 

(nicht überprüft, aber dies sollte Ihnen eine Idee geben, wie INTERVAL Anweisung zu verwenden)

+1

Es sollte wahrscheinlich darauf hingewiesen werden, dass dies Ansatz würde Datensätze abrufen, die ein "Datum" -Feld haben, das zwischen dem aktuellen Datum und "3 Monaten" liegt (was im Wesentlichen dasselbe wäre wie 28, 30 oder 31 Tage, abhängig vom Monat). Wenn Sie Datensätze mit einem Datum haben möchten, das innerhalb der letzten 3 Kalendermonate liegt, müssen Sie etwas anderes tun. – jstol

+0

@jstol was genau? – Rocketq

1

bereites:

SELECT * 
FROM table 
WHERE month BETWEEN EXTRACT(MONTH FROM NOW() - INTERVAL '3 months') 
AND EXTRACT(MONTH FROM NOW()) 
ORDER BY month 
; 
+1

Und wie denkst du, dass das Januar kommen wird? (Es wird nicht) –

+0

Es wird nicht ich weiß, aber die Frage impliziert es, da wir nur die Existenz der Spalte Monat kennen und wir wissen nicht, ob ein Jahr in seiner Beziehung existiert – analogue

Verwandte Themen