Voici une astuce astucieuse que nous pouvons utiliser dans MariaDB pour renvoyer le nombre de jours dans un mois en fonction d'une date donnée.
SELECT DAYOFMONTH(LAST_DAY('2027-07-11'));
Résultat :
31
Cela implique de transmettre le LAST_DAY()
de MariaDB fonction au DAYOFMONTH()
fonction pour renvoyer le nombre de jours dans le mois.
Plus précisément, nous avons passé la date au LAST_DAY()
fonction afin d'obtenir la date du dernier jour du mois. Nous avons ensuite utilisé le DAYOFMONTH()
fonction pour renvoyer uniquement le numéro du jour de ce dernier jour.
Voici un exemple qui couvre tous les mois de l'année :
SELECT
DAYOFMONTH(LAST_DAY('2027-01-11')) AS "Jan",
DAYOFMONTH(LAST_DAY('2027-02-11')) AS "Feb",
DAYOFMONTH(LAST_DAY('2027-03-11')) AS "Mar",
DAYOFMONTH(LAST_DAY('2027-04-11')) AS "Apr",
DAYOFMONTH(LAST_DAY('2027-05-11')) AS "May",
DAYOFMONTH(LAST_DAY('2027-06-11')) AS "Jun",
DAYOFMONTH(LAST_DAY('2027-07-11')) AS "Jul",
DAYOFMONTH(LAST_DAY('2027-08-11')) AS "Aug",
DAYOFMONTH(LAST_DAY('2027-09-11')) AS "Sep",
DAYOFMONTH(LAST_DAY('2027-10-11')) AS "Oct",
DAYOFMONTH(LAST_DAY('2027-11-11')) AS "Nov",
DAYOFMONTH(LAST_DAY('2027-12-11')) 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 | +------+------+------+------+------+------+------+------+------+------+------+------+