Her er et eksempel på brug af PostgreSQL til at returnere antallet af dage i en måned, baseret på en given dato.
SELECT
date_part(
'days',
(date_trunc('month', date '2030-07-14') + interval '1 month - 1 day')
);
Resultat:
31
Her brugte vi date_part()
funktion for at returnere dagnummeret for den sidste dag i måneden. Vi fik den sidste dag i måneden ved at bruge date_trunc()
at afkorte datoens præcision til måneden, og også ved at udføre en datoforskydning på resultatet.
Her er et andet eksempel, denne gang med antallet af dage i hver måned:
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";
Resultat:
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ | 31 | 28 | 31 | 30 | 31 | 30 | 31 | 31 | 30 | 31 | 30 | 31 | +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
Vær opmærksom på, at antallet af dage for februar kan ændre sig afhængigt af, om det er et skudår eller ej.