如何在MySQL中获得每个相应月份的第一天?

您可以使用format()MySQL 中的date-函数来获取每个相应月份的第一天。语法如下 -

select DATE_FORMAT(yourDatetimeColumnName ,'%Y-%m-01') as anyVariableName from
yourTableName;

要理解上述语法,让我们首先创建一个表。创建表的查询如下 -

mysql> create table getFirstDayOfMonth
   -> (
   -> DueDatetime datetime
   -> );

使用插入命令在表中插入一些记录。查询如下 -

mysql> insert into getFirstDayOfMonth values(date_add(now(),interval 3 month));

mysql> insert into getFirstDayOfMonth values(date_add(now(),interval -3 month));

mysql> insert into getFirstDayOfMonth values(date_add(now(),interval -2 month));

mysql> insert into getFirstDayOfMonth values(date_add(now(),interval -1 month));

mysql> insert into getFirstDayOfMonth values(date_add(now(),interval -4 month));

使用 select 语句显示表中的所有记录。查询如下 -

mysql> select *from getFirstDayOfMonth;
输出结果
+---------------------+
| 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)

这是获取相应月份第一天的查询。无论列中的月份是什么,以下查询都将返回该月的第一天 -

mysql> select DATE_FORMAT(DueDatetime ,'%Y-%m-01') as DateDemo from getFirstDayOfMonth;
输出结果
+------------+
| DateDemo   |
+------------+
| 2019-03-01 |
| 2018-09-01 |
| 2018-10-01 |
| 2018-11-01 |
| 2018-08-01 |
+------------+
5 rows in set (0.00 sec)