Bạn có thể sử dụng hàm date-format () từ MySQL để lấy ngày đầu tiên của mỗi tháng tương ứng. Cú pháp như sau -
select DATE_FORMAT(yourDatetimeColumnName ,'%Y-%m-01') 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 getFirstDayOfMonth -> ( -> DueDatetime datetime -> ); Query OK, 0 rows affected (1.16 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 getFirstDayOfMonth values(date_add(now(),interval 3 month)); Query OK, 1 row affected (0.30 sec) mysql> insert into getFirstDayOfMonth values(date_add(now(),interval -3 month)); Query OK, 1 row affected (0.13 sec) mysql> insert into getFirstDayOfMonth values(date_add(now(),interval -2 month)); Query OK, 1 row affected (0.18 sec) mysql> insert into getFirstDayOfMonth values(date_add(now(),interval -1 month)); Query OK, 1 row affected (0.16 sec) mysql> insert into getFirstDayOfMonth values(date_add(now(),interval -4 month)); Query OK, 1 row affected (0.10 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 getFirstDayOfMonth;
Đầu ra
+---------------------+ | DueDatetime | +---------------------+ | 2019-03-20 12:32:06 | | 2018-09-20 12:32:16 | | 2018-10-20 12:32:22 | | 2018-11-20 12:32:28 | | 2018-08-20 12:32:33 | +---------------------+ 5 rows in set (0.00 sec)
Đây là truy vấn để lấy ngày đầu tiên của tháng tương ứng. Bất kể tháng nào trong cột, truy vấn sau sẽ trả về ngày đầu tiên của mỗi tháng đó -
mysql> select DATE_FORMAT(DueDatetime ,'%Y-%m-01') as DateDemo from getFirstDayOfMonth;
Đầu ra
+------------+ | DateDemo | +------------+ | 2019-03-01 | | 2018-09-01 | | 2018-10-01 | | 2018-11-01 | | 2018-08-01 | +------------+ 5 rows in set (0.00 sec)