MySQL中查询上个月的日期

在MySQL中,想要查询上个月的日期,可以使用一些日期和时间函数来实现。本文将介绍一些常用的函数和方法,并提供相应的代码示例。

获取当前日期

在MySQL中,使用CURDATE()函数可以获取当前日期。下面是一个查询当前日期的示例:

SELECT CURDATE();

输出结果类似于:2022-01-01

获取上个月的日期

要获取上个月的日期,可以使用DATE_SUB()函数和INTERVAL关键字。DATE_SUB()函数接受两个参数:要减去的日期和时间,以及要减去的时间间隔。

在本例中,我们要减去的是当前日期,时间间隔是1个月。下面是一个查询上个月日期的示例:

SELECT DATE_SUB(CURDATE(), INTERVAL 1 MONTH);

输出结果类似于:2021-12-01

查询上个月的所有日期

如果想要查询上个月的所有日期,可以使用LAST_DAY()函数和DATE_SUB()函数的组合。

LAST_DAY()函数返回给定日期所在月份的最后一天。结合DATE_SUB()函数,我们可以获取上个月的最后一天。下面是一个查询上个月所有日期的示例:

SELECT DATE_SUB(LAST_DAY(CURDATE()), INTERVAL 1 MONTH) + INTERVAL 1 DAY AS start_date,
       LAST_DAY(CURDATE()) AS end_date;

输出结果类似于:

start_date  |  end_date
-------------------------
2021-12-01  |  2021-12-31

查询上个月的某一天

如果只想要查询上个月的某一天,可以使用DAY()函数获取当前日期的天数,然后减去相应的天数。

下面是一个查询上个月第10天的日期的示例:

SELECT DATE_SUB(LAST_DAY(CURDATE()), INTERVAL 1 MONTH) + INTERVAL 10 DAY;

输出结果类似于:2021-12-10

查询上个月的日期范围内的数据

如果想要在查询中使用上个月的日期范围,可以使用BETWEEN关键字。

下面是一个查询上个月日期范围内的数据的示例:

SELECT *
FROM your_table
WHERE date_column BETWEEN DATE_SUB(LAST_DAY(CURDATE()), INTERVAL 1 MONTH) + INTERVAL 1 DAY
                     AND LAST_DAY(CURDATE());

这个查询将返回your_table表中在上个月范围内的数据。

总结

在MySQL中,要查询上个月的日期,可以使用DATE_SUB()函数和LAST_DAY()函数来计算。通过组合这些函数,我们可以获取上个月的日期、日期范围等。希望这些示例代码可以帮助你在MySQL中查询上个月的日期。

参考资料:

  • [MySQL Date and Time Functions](
  • [MySQL Date Subtraction](