如何在 MySQL 中获取每个对应月份的第一天?
mysqlmysqli database
您可以使用 MySQL 中的 date-format() 函数获取每个对应月份的第一天。语法如下 −
select DATE_FORMAT(yourDatetimeColumnName ,'%Y-%m-01') as anyVariableName from yourTableName;
为了理解上述语法,我们首先创建一个表。创建表的查询如下 −
mysql> create table getFirstDayOfMonth -> ( -> DueDatetime datetime -> ); Query OK, 0 rows affected (1.16 sec)
使用 insert 命令在表中插入一些记录。 查询语句如下 −
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)
使用 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)