PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So erhalten Sie das gestrige Datum in PostgreSQL

Problem:

Sie möchten das gestrige Datum (ohne Uhrzeit) in einer PostgreSQL-Datenbank anzeigen.

Lösung 1:

SELECT current_date - INTEGER '1' AS yesterday_date;

Unter der Annahme, dass heute der 24.09.2020 ist, lautet das Ergebnis:

Gestern_Datum
2020-09-23

Diskussion:

Um das gestrige Datum zu erhalten, müssen Sie vom heutigen Datum einen Tag abziehen. Verwenden Sie current_date um das heutige Datum zu erhalten. Beachten Sie, dass Sie am Ende von current_date keine Klammern benötigen Funktion. In PostgreSQL können Sie mit INTEGER eine beliebige Anzahl von Tagen subtrahieren oder addieren Stichwort. Da Sie hier einen Tag abziehen müssen, verwenden Sie - INTEGER '1' um das gestrige Datum zu erhalten. Beachten Sie, dass das Ergebnis dieser Berechnung immer noch den Spaltentyp date hat .

Lösung 2:

SELECT (current_date - INTERVAL '1 day')::date AS yesterday_date;

Unter der Annahme, dass heute der 24.09.2020 ist, lautet das Ergebnis:

Gestern_Datum
2020-09-23

Diskussion:

Holen Sie sich das heutige Datum mit current_date . Sie müssen ein Intervall von einem Tag vom aktuellen Datum abziehen. Verwenden Sie dazu das INTERVAL Schlüsselwort, das ein beliebiges Zeit-/Datumsintervall erstellt (hier '1 day' , was in PostgreSQL 24 Stunden entspricht). Subtrahieren von INTERVAL '1 day' vom heutigen Datum ergibt eine Spalte, die als Zeitstempel formatiert ist, also müssen Sie sie in date umwandeln . Der schnellste Weg, dies in PostgreSQL zu tun, ist das Anhängen von ::date auf den gesamten Ausdruck (denken Sie daran, den Ausdruck in Klammern zu setzen).

Natürlich können Sie genauso einfach um ein beliebiges Zeitintervall zurückgehen. Hier ist ein Beispiel:

SELECT (current_date - INTERVAL '3 months 10 days')::date;

Ein INTERVAL können auch hinzugefügt werden zu einem Termin. So können Sie das morgige Datum abrufen:

SELECT (current_date + INTERVAL '1 day')::date AS tomorrow_date;