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查询上个月的日期的方法。在实际应用中,可以根据这个方法来进行上个月数据的查询和统计。此外,还可以根据类似的方法来查询上一周、上一年等等的日期。