Ето един страхотен трик, който можем да използваме в MariaDB, за да върнем броя на дните в месеца въз основа на дадена дата.
SELECT DAYOFMONTH(LAST_DAY('2027-07-11'));
Резултат:
31
Това включва предаване на LAST_DAY()
на MariaDB функция към DAYOFMONTH()
функция за връщане на броя на дните в месеца.
По-конкретно, предадохме датата на LAST_DAY()
функция, за да получите датата на последния ден от месеца. След това използвахме DAYOFMONTH()
функция за връщане само на номера на деня от последния ден.
Ето един пример, който минава през всички месеци на годината:
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";
Резултат:
+------+------+------+------+------+------+------+------+------+------+------+------+ | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | +------+------+------+------+------+------+------+------+------+------+------+------+ | 31 | 28 | 31 | 30 | 31 | 30 | 31 | 31 | 30 | 31 | 30 | 31 | +------+------+------+------+------+------+------+------+------+------+------+------+