Můžeme použít LAST_DAY()
MySQL funkce vrátit poslední den daného měsíce.
Může to být poslední den aktuálního měsíce nebo poslední den v měsíci na základě data, které určíme.
Příklad
SELECT LAST_DAY('2030-04-15');
Výsledek:
2030-04-30
V tomto případě má zadaný měsíc (květen) 30 dní, takže dostaneme 30. den daného měsíce.
Tady je to s různými měsíci v roce:
SELECT
LAST_DAY('2030-01-15') AS "Jan",
LAST_DAY('2030-02-15') AS "Feb",
LAST_DAY('2030-03-15') AS "Mar",
LAST_DAY('2030-04-15') AS "Apr",
LAST_DAY('2030-05-15') AS "May",
LAST_DAY('2030-06-15') AS "Jun",
LAST_DAY('2030-07-15') AS "Jul",
LAST_DAY('2030-08-15') AS "Aug",
LAST_DAY('2030-09-15') AS "Sep",
LAST_DAY('2030-10-15') AS "Oct",
LAST_DAY('2030-11-15') AS "Nov",
LAST_DAY('2030-12-15') AS "Dec";
Výsledek:
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ | Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ | 2030-01-31 | 2030-02-28 | 2030-03-31 | 2030-04-30 | 2030-05-31 | 2030-06-30 | 2030-07-31 | 2030-08-31 | 2030-09-30 | 2030-10-31 | 2030-11-30 | 2030-12-31 | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
Příklad databáze
Zde je příklad, který používá data z databáze:
CREATE TABLE employees (
empId INTEGER PRIMARY KEY,
name TEXT NOT NULL,
start_date DATE NOT NULL
);
INSERT INTO employees VALUES (0001, 'Rohit', '2020-02-15');
INSERT INTO employees VALUES (0002, 'Zohan', '2017-08-09');
INSERT INTO employees VALUES (0003, 'Jen', '2010-09-03');
INSERT INTO employees VALUES (0004, 'Eve', '2011-10-24');
INSERT INTO employees VALUES (0005, 'Ryan', '2021-11-08');
SELECT
start_date,
CAST(LAST_DAY(start_date) AS DATE) AS "End of Month"
FROM employees;
Výsledek:
start_date End of Month 2020-02-15 2020-02-29 2017-08-09 2017-08-31 2010-09-03 2010-09-30 2011-10-24 2011-10-31 2021-11-08 2021-11-30
V tomto případě jsem také použil CAST()
funkce pro přetypování datetime
hodnotu na date
hodnotu.