Oto sprytna sztuczka, której możemy użyć w MariaDB, aby zwrócić liczbę dni w miesiącu na podstawie podanej daty.
SELECT DAYOFMONTH(LAST_DAY('2027-07-11'));
Wynik:
31
Wiąże się to z przekazaniem funkcji LAST_DAY()
MariaDB funkcji DAYOFMONTH()
funkcja zwracająca liczbę dni w miesiącu.
Dokładniej, przekazaliśmy datę do LAST_DAY()
funkcja w celu uzyskania daty ostatniego dnia miesiąca. Następnie użyliśmy DAYOFMONTH()
funkcja zwracająca tylko numer dnia ostatniego dnia.
Oto przykład, który obejmuje wszystkie miesiące w roku:
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";
Wynik:
+------+------+------+------+------+------+------+------+------+------+------+------+ | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | +------+------+------+------+------+------+------+------+------+------+------+------+ | 31 | 28 | 31 | 30 | 31 | 30 | 31 | 31 | 30 | 31 | 30 | 31 | +------+------+------+------+------+------+------+------+------+------+------+------+