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

Rufen Sie die Anzahl der Tage in einem Monat in PostgreSQL ab

Hier ist ein Beispiel für die Verwendung von PostgreSQL, um die Anzahl der Tage in einem Monat basierend auf einem bestimmten Datum zurückzugeben.

SELECT 
    date_part(
        'days', 
        (date_trunc('month', date '2030-07-14') + interval '1 month - 1 day')
        );

Ergebnis:

31

Hier haben wir den date_part() verwendet Funktion, um die Tagesnummer des letzten Tages des Monats zurückzugeben. Wir haben den letzten Tag des Monats mit date_trunc() erhalten um die Genauigkeit des Datums auf den Monat zu kürzen, und auch durch eine Datumsverschiebung des Ergebnisses.

Hier ist ein weiteres Beispiel, das diesmal die Anzahl der Tage in jedem Monat zurückgibt:

SELECT 
    date_part('days', (date_trunc('month', date '2030-01-14') + interval '1 month - 1 day')) AS "Jan",
    date_part('days', (date_trunc('month', date '2030-02-14') + interval '1 month - 1 day')) AS "Feb",
    date_part('days', (date_trunc('month', date '2030-03-14') + interval '1 month - 1 day')) AS "Mar",
    date_part('days', (date_trunc('month', date '2030-04-14') + interval '1 month - 1 day')) AS "Apr",
    date_part('days', (date_trunc('month', date '2030-05-14') + interval '1 month - 1 day')) AS "May",
    date_part('days', (date_trunc('month', date '2030-06-14') + interval '1 month - 1 day')) AS "Jun",
    date_part('days', (date_trunc('month', date '2030-07-14') + interval '1 month - 1 day')) AS "Jul",
    date_part('days', (date_trunc('month', date '2030-08-14') + interval '1 month - 1 day')) AS "Aug",
    date_part('days', (date_trunc('month', date '2030-09-14') + interval '1 month - 1 day')) AS "Sep",
    date_part('days', (date_trunc('month', date '2030-10-14') + interval '1 month - 1 day')) AS "Oct",
    date_part('days', (date_trunc('month', date '2030-11-14') + interval '1 month - 1 day')) AS "Nov",
    date_part('days', (date_trunc('month', date '2030-12-14') + interval '1 month - 1 day')) AS "Dec";

Ergebnis:

+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
| Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
|  31 |  28 |  31 |  30 |  31 |  30 |  31 |  31 |  30 |  31 |  30 |  31 |
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+

Beachten Sie, dass sich die Anzahl der Tage im Februar ändern kann, je nachdem, ob es sich um ein Schaltjahr handelt oder nicht.