Chúng tôi có thể sử dụng LAST_DAY()
của MySQL hàm để trả về ngày cuối cùng của một tháng nhất định.
Đây có thể là ngày cuối cùng của tháng hiện tại hoặc ngày cuối cùng của tháng dựa trên ngày mà chúng tôi chỉ định.
Ví dụ
SELECT LAST_DAY('2030-04-15');
Kết quả:
2030-04-30
Trong trường hợp này, tháng được chỉ định (tháng 5) có 30 ngày và do đó, chúng tôi nhận được ngày 30 của tháng đó.
Đây là kết quả với các tháng khác nhau trong năm:
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";
Kết quả:
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+ | 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 | +------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
Ví dụ về cơ sở dữ liệu
Dưới đây là một ví dụ sử dụng ngày tháng từ cơ sở dữ liệu:
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;
Kết quả:
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
Trong trường hợp này, tôi cũng đã sử dụng CAST()
hàm truyền datetime
giá trị thành một date
giá trị.