Để tìm số ngày trong tháng, hãy sử dụng cú pháp dưới đây.
select DAY(LAST_DAY(yourColumnName)) as anyVariableName from yourTableName;
Để hiểu cú pháp trên, trước tiên chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau.
mysql> create table DaysInaGivenMonth -> ( -> MonthName datetime -> ); Query OK, 0 rows affected (1.62 sec)
Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau.
mysql> insert into DaysInaGivenMonth values(now()); Query OK, 1 row affected (0.24 sec) mysql> insert into DaysInaGivenMonth values(date_add(now(),interval -1 month)); Query OK, 1 row affected (0.16 sec) mysql> insert into DaysInaGivenMonth values(date_add(now(),interval -2 month)); Query OK, 1 row affected (0.10 sec) mysql> insert into DaysInaGivenMonth values(date_add(now(),interval -3 month)); Query OK, 1 row affected (0.20 sec) mysql> insert into DaysInaGivenMonth values(date_add(now(),interval -4 month)); Query OK, 1 row affected (0.23 sec) mysql> insert into DaysInaGivenMonth values(date_add(now(),interval -5 month)); Query OK, 1 row affected (0.15 sec)
Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau.
mysql> select *from DaysInaGivenMonth;
Sau đây là kết quả.
+---------------------+ | 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 | +---------------------+ 6 rows in set (0.00 sec)
Đây là truy vấn để tìm ra số ngày trong các tháng được liệt kê ở trên.
mysql> select DAY(LAST_DAY(MonthName)) as DaysInMonth from DaysInaGivenMonth;
Sau đây là kết quả.
+-------------+ | DaysInMonth | +-------------+ | 31 | | 31 | | 30 | | 31 | | 30 | | 31 | +-------------+ 6 rows in set (0.00 sec)