MySQL实现获取每月第一天(mysql获取第一天)

及最后一天

MySQL实现获取每月第一天及最后一天

日期字段上,大多时候都需要实现比如“汇总本月”之类的业务逻辑,如果要使用SQL,就必须要先获得每月的开始日期和结束日期,今天就来看下MySQL数据库中怎么实现。

MySQL中,一般会使用DATE_FORMAT()函数来实现,该函数会根据指定的格式计算日期字段,例如:

SELECT DATE_FORMAT('2007-12-31','%Y-%m-01'); // 2007-12-01
SELECT LAST_DAY('2007-12-31'); // 2007-12-31

上面的查询中,第一句用于提取某个日期所在月份的初始日期,第二句用于提取某个日期所在月份的最后一天。

另外,MySQL还支持使用如下函数来获取每月的起始日期和结束日期:

SELECT CONCAT(YEAR(now()),'-',MONTH(now()),'-01') as start_of_month,
LAST_DAY(now()) as end_of_month

上面的SQL中,`YEAR(now())`表示获取当前年份; `MONTH(now())`表示获取当前月份;最终形成指定月份中的第一天;而另一句用 `LAST_DAY(now())`来提取当前月份的最末一天。

当然, 除了上述两种方案,MySQL还有其他更加高效易用的函数来实现这个目的,比如`MAKE_DATE()`,该函数可以用来构造一个日期,而要想获得某个月的起始日期,只需要给定年份、月份,然后把“true”作为参数传进去:

MAKEDATE(year, month, true)

MySQL还提供了很多高级函数以方便数据库的使用,本文就介绍了使用MySQL获取每月的起始日期和最终日期的相关函数,希望这篇文章对读者可以有所帮助。


数据运维技术 » MySQL实现获取每月第一天(mysql获取第一天)