Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách tìm số ngày trong một tháng trong MySQL

Sử dụng kết hợp DAY() và LAST_DAY() để lấy số ngày của tháng chứa một ngày cho trước.

Cú pháp:

SELECT DAY(LAST_DAY(ten_cot)) AS ten_bien FROM ten_bang;

Ví dụ: tạo bảng DaysInaGivenMonth:

mysql> CREATE TABLE DaysInaGivenMonth (
    -> MonthName DATETIME
    -> );

Chèn 6 tháng liên tiếp (tính từ hiện tại lùi lại):

mysql> INSERT INTO DaysInaGivenMonth VALUES (NOW());
mysql> INSERT INTO DaysInaGivenMonth VALUES (DATE_ADD(NOW(), INTERVAL -1 MONTH));
mysql> INSERT INTO DaysInaGivenMonth VALUES (DATE_ADD(NOW(), INTERVAL -2 MONTH));
mysql> INSERT INTO DaysInaGivenMonth VALUES (DATE_ADD(NOW(), INTERVAL -3 MONTH));
mysql> INSERT INTO DaysInaGivenMonth VALUES (DATE_ADD(NOW(), INTERVAL -4 MONTH));
mysql> INSERT INTO DaysInaGivenMonth VALUES (DATE_ADD(NOW(), INTERVAL -5 MONTH));

Dữ liệu gốc:

mysql> SELECT * FROM DaysInaGivenMonth;
+---------------------+
| MonthName           |
+---------------------+
| 2019-01-01 21:34:26 |
| 2018-12-01 21:34:55 |
| 2018-11-01 21:35:14 |
| 2018-10-01 21:35:20 |
| 2018-09-01 21:35:23 |
| 2018-08-01 21:35:27 |
+---------------------+

Tính số ngày mỗi tháng:

mysql> SELECT DAY(LAST_DAY(MonthName)) AS DaysInMonth FROM DaysInaGivenMonth;

Kết quả:

+-------------+
| DaysInMonth |
+-------------+
| 31          |
| 31          |
| 30          |
| 31          |
| 30          |
| 31          |
+-------------+

LAST_DAY() trả về ngày cuối tháng, DAY() lấy phần ngày (1-31). Kết hợp cho ra số ngày của tháng.