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

Holen Sie sich den Tag aus einem Datum in PostgreSQL

In PostgreSQL können Sie den extract() verwenden Funktion, um den Tag aus einem Datum zu erhalten.

Sie können auch date_part() verwenden dasselbe zu tun.

Wenn Sie den Tag aus einem Datum extrahieren, müssen Sie angeben, welche Bedeutung des Wortes „Tag“ Sie meinen. Zum Beispiel „Wochentag“, „Tag des Monats“, „Tag des Jahres“ usw.

Beispiel 1:Wochentag

Hier ist ein Beispiel für die Verwendung von extract() Funktion, um den Wochentag aus einem Datum zu extrahieren.

Mit dow gibt den Wochentag als Sonntag (0) bis Samstag (6) zurück.

SELECT 
  extract(dow from date '2020-12-27') AS "Day of week",
  to_char(date '2020-12-27', 'Day') AS "Day Name";

Ergebnis:

 Day of week | Day Name  
-------------+-----------
           0 | Sunday   

In diesem Beispiel habe ich auch den Tagesnamen zurückgegeben, damit es keine Verwirrung darüber gibt, welcher Tag tatsächlich zurückgegeben wird.

Ich werde das gleiche Datum für die restlichen Beispiele verwenden, daher brauche ich den Tagesnamen in diesen Beispielen nicht auszudrucken.

Beispiel 2:ISO-Wochentag

Mit isodow gibt den Wochentag als Montag (1) bis Sonntag (7) zurück.

SELECT extract(
    isodow from date '2020-12-27'
    ) AS "ISO Day of week";

Ergebnis:

 ISO Day of week 
-----------------
               7

Der Grund, warum ich Sonntag in diesen Beispielen verwendet habe, ist, dass es den Unterschied zwischen isodow hervorhebt und dow .

Beispiel 3:Tag des Monats

Bei Verwendung von Zeitstempel oder Datum Werte, day gibt den Tag des Monats zurück (1 – 31).

SELECT extract(
    day from date '2020-12-27'
    ) AS "Day of month";

Ergebnis:

 Day of month 
--------------
           27

Bei Verwendung eines Intervalls Wert, der day Feld ergibt die Anzahl der zurückgegebenen Tage.

SELECT extract(
    day from interval '32 weeks'
    ) AS "Number of days";

Ergebnis:

 Number of days 
----------------
            224

Beispiel 4:Tag des Jahres

Verwenden von doy gibt den Tag des Jahres zurück (1 – 365/366).

SELECT extract(
    doy from date '2020-12-27'
    ) AS "Day of year";

Ergebnis:

 Day of year 
-------------
         362

Beispiel 5:Die Funktion date_part()

Der date_part() Funktion kann anstelle von extract() verwendet werden Funktion. Hier ist ein Beispiel.

SELECT date_part(
    'doy', timestamp '2020-12-27'
    ) AS "Day of year";

Ergebnis:

 Day of year 
-------------
         362