您可以使用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)