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

3 Funktionen, die Tag, Monat und Jahr aus einem Datum in PostgreSQL abrufen

PostgreSQL bietet uns mehrere Möglichkeiten, Tag, Monat und Jahr aus einem Datum zu ermitteln.

Drei Funktionen, die einem sofort in den Sinn kommen, sind:DATE_PART() , EXTRACT() , und TO_CHAR() .

EXTRACT()

Der EXTRACT() Die Funktion ruft Unterfelder wie Jahr, Monat, Stunde oder Minute ab, die Teil eines Datums-/Uhrzeitwerts sind.

Beispiel:

SELECT EXTRACT(YEAR FROM date '2035-10-30');

Ergebnis:

2035

Wir können verschiedene Datumsteile in separaten Feldern zurückgeben, indem wir diese Funktion drei Mal aufrufen:

SELECT 
    EXTRACT(DAY FROM date '2035-10-30') AS "Day",
    EXTRACT(DOW FROM date '2035-10-30') AS "DOW",
    EXTRACT(DOY FROM date '2035-10-30') AS "DOY",
    EXTRACT(MONTH FROM date '2035-10-30') AS "Month",
    EXTRACT(YEAR FROM date '2035-10-30') AS "Year";

Ergebnis:

 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

Hier habe ich den Tag des Monats, den Tag der Woche, den Tag des Jahres, den Monat und das Jahr aus dem Datum zurückgegeben.

Weitere Beispiele und eine Liste von Feldnamen, die von dieser Funktion zurückgegeben werden können, finden Sie unter Funktionsweise von Extract() in PostgreSQL.

DATE_PART()

Der DATE_PART() Funktion ist das Äquivalent von EXTRACT() , aber mit einer etwas anderen Syntax.

SELECT 
    DATE_PART('DAY', date '2035-10-30') AS "Day",
    DATE_PART('DOW', date '2035-10-30') AS "DOW",
    DATE_PART('DOY', date '2035-10-30') AS "DOY",
    DATE_PART('MONTH', date '2035-10-30') AS "Month",
    DATE_PART('YEAR', date '2035-10-30') AS "Year";

Ergebnis:

 Day | DOW | DOY | Month | Year 
-----+-----+-----+-------+------
  30 |   2 | 303 |    10 | 2035

Diese Funktion erfordert, dass das erste Argument als Zeichenfolge bereitgestellt wird und ein Komma die beiden Argumente anstelle von FROM trennt Schlüsselwort.

TO_CHAR()

Der TO_CHAR() Die Funktion ist flexibler, da sie verwendet werden kann, um eine größere Vielfalt von Ausgaben bereitzustellen. Beispielsweise können wir diese Funktion verwenden, um Tag, Monat und Jahr in einem Feld zurückzugeben:

SELECT TO_CHAR(date '2045-12-02', 'Day, DDth Month YYYY');

Ergebnis:

 Saturday , 02nd December  2045

Wir können den fm verwenden Template-Modifizierer, um eventuell angewendete Paddings zu unterdrücken:

SELECT TO_CHAR(date '2165-04-01', 'fmDay, fmDDth fmMonth YYYY');

Ergebnis:

 Monday, 1st April 2165

Beachten Sie auch, dass der th Template-Modifizierer ist schlau genug, um zu wissen, ob st , nd , rd , oder th sollte angehängt werden.

Hier ist ein Beispiel, das verschiedene Aufrufe von TO_CHAR() verwendet um verschiedene Datumsteile in separaten Feldern auszugeben:

SELECT 
    TO_CHAR(date '2165-04-01', 'fmDay') AS "Day",
    TO_CHAR(date '2165-04-01', 'fmDD') AS "DD",
    TO_CHAR(date '2165-04-01', 'fmMonth') AS "Month",
    TO_CHAR(date '2165-04-01', 'YYYY') AS "YYYY";

Ergebnis:

  Day   | DD | Month | YYYY 
--------+----+-------+------
 Monday | 1  | April | 2165