MySQL如何查询上月最后一天(mysql 上月最后一天)

MySQL如何查询上月最后一天?

在数据分析和报表统计中,查询上月最后一天是一个非常常见的需求。在MySQL中,我们可以使用DATE_ADD和LAST_DAY函数来实现这个目标。

方法1:使用DATE_ADD和LAST_DAY函数

DATE_ADD函数可以用来在日期上添加或减去指定的时间间隔,LAST_DAY函数则返回给定日期所在月份的最后一天。通过结合这两个函数,我们可以查询上月最后一天。下面是示例代码:

SELECT LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH)) AS last_month_last_day;

其中,DATE_SUB函数借助INTERVAL参数将当前日期减去1个月,得到上月日期;LAST_DAY函数返回上月最后一天的日期。执行上面的SQL语句,我们可以得到如下结果:

+-------------------+
| last_month_last_day|
+-------------------+
| 2020-06-30 |
+-------------------+

如果要查询某个指定日期的上月最后一天,可以将NOW()函数替换为相应的日期。例如,要查询2020年5月的最后一天,可以改写SQL语句如下:

SELECT LAST_DAY(DATE_SUB('2020-06-01', INTERVAL 1 MONTH)) AS last_month_last_day;

方法2:使用DATE_FORMAT函数和STR_TO_DATE函数

另一种查询上月最后一天的方法是借助DATE_FORMAT和STR_TO_DATE函数。前者用于将日期格式化为特定字符串格式,后者则将字符串转换为日期类型。下面是示例代码:

SELECT STR_TO_DATE(DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m-01'), '%Y-%m-%d') - INTERVAL 1 DAY AS last_month_last_day;

其中,DATE_SUB函数、DATE_FORMAT函数、STR_TO_DATE函数的作用和前面一样,不过最后我们需要对生成的字符串日期减去1天,才能得到上月最后一天。执行上面的SQL语句,我们也可以得到2020年6月的最后一天2020-06-30。

综上,使用MySQL的DATE_ADD、LAST_DAY函数或DATE_FORMAT、STR_TO_DATE函数均可以查询上月最后一天。不同的方法适用于不同的需求和场景,读者可以根据实际情况选择合适的方法。


数据运维技术 » MySQL如何查询上月最后一天(mysql 上月最后一天)