MySQL查询上个月的日期(mysql 上个月日期)

MySQL查询上个月的日期

在进行数据库数据统计时,经常会需要查询上个月的数据。比如,查询上个月销售量最高的商品,或者查询上个月用户的登录记录等等。而MySQL提供了方便的函数来获取上个月的日期。

获取上个月的年份和月份

可以使用MySQL函数MONTH()和YEAR()来获取当前日期的月份和年份,再根据这个月份计算上个月的年份和月份。具体依据是如果当前月份为1月,则上个月为去年12月;否则上个月的年份和月份为当前月份的前一月。

下面是一个示例查询语句:

SELECT
IF(MONTH(NOW())=1,YEAR(NOW())-1,YEAR(NOW())) AS last_year,
IF(MONTH(NOW())=1,12,MONTH(NOW())-1) AS last_month;

这个查询语句返回的结果是上个月的年份和月份,比如当前是2022年2月,则返回的结果是2022年1月。

获取上个月的第一天和最后一天日期

得到上个月的年份和月份之后,就可以计算出上个月的第一天和最后一天日期。可以使用MySQL函数DATE_FORMAT()和DATE_ADD() / LAST_DAY()函数,具体实现如下:

SELECT
DATE_FORMAT(
CONCAT(
IF(MONTH(NOW())=1,YEAR(NOW())-1,YEAR(NOW())),
'-',
IF(MONTH(NOW())=1,12,MONTH(NOW())-1),
'-01'
), '%Y%m%d'
) AS start_date,
DATE_FORMAT(
LAST_DAY(
CONCAT(
IF(MONTH(NOW())=1,YEAR(NOW())-1,YEAR(NOW())),
'-',
IF(MONTH(NOW())=1,12,MONTH(NOW())-1),
'-01'
)
), '%Y%m%d'
) AS end_date;

这个查询语句返回的是上个月的第一天和最后一天日期,格式为YYYYMMDD,比如当前是2022年2月,则返回的结果是20220101和20220131。

总结

以上就是MySQL查询上个月的日期的方法。在实际应用中,可以根据这个方法来进行上个月数据的查询和统计。此外,还可以根据类似的方法来查询上一周、上一年等等的日期。


数据运维技术 » MySQL查询上个月的日期(mysql 上个月日期)