Voici un exemple d'utilisation de PostgreSQL pour renvoyer le nombre de jours dans un mois, en fonction d'une date donnée.
SELECT
date_part(
'days',
(date_trunc('month', date '2030-07-14') + interval '1 month - 1 day')
);
Résultat :
31
Ici, nous avons utilisé le date_part()
fonction pour renvoyer le numéro du jour du dernier jour du mois. Nous avons obtenu le dernier jour du mois en utilisant date_trunc()
pour tronquer la précision de la date au mois, et aussi en effectuant un décalage de date sur le résultat.
Voici un autre exemple, renvoyant cette fois le nombre de jours de chaque mois :
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";
Résultat :
+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ | 31 | 28 | 31 | 30 | 31 | 30 | 31 | 31 | 30 | 31 | 30 | 31 | +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+
Sachez que le nombre de jours pour février peut changer selon qu'il s'agit d'une année bissextile ou non.