mysql 返回上个月第一天
时间: 2024-09-11 07:16:10 浏览: 123
mysql中获取一天、一周、一月时间数据的各种sql语句写法
在MySQL中,要返回上个月的第一天,你可以使用`DATE_SUB()`和`LAST_DAY()`函数结合来实现。首先,使用`LAST_DAY()`函数获取上个月的最后一天,然后用`DATE_SUB()`函数从那天减去一个月。具体的SQL查询语句如下:
```sql
SELECT DATE_SUB(LAST_DAY(DATE_SUB(CURDATE(), INTERVAL DAYOFMONTH(CURDATE()) DAY)), INTERVAL 1 MONTH) + INTERVAL 1 DAY;
```
这个查询的工作流程是这样的:
1. `CURDATE()`函数返回当前日期。
2. `DAYOFMONTH(CURDATE())`获取当前月的天数。
3. `DATE_SUB(CURDATE(), INTERVAL DAYOFMONTH(CURDATE()) DAY)`将当前日期减去当前月天数,得到上个月的最后一天。
4. `LAST_DAY()`函数返回上个月最后一天所在的月份的最后一天,即上个月的最后一天。
5. `DATE_SUB(LAST_DAY(...), INTERVAL 1 MONTH)`将上一步得到的日期减去一个月,得到上个月的第一天。
6. `INTERVAL 1 DAY`是为了调整结果到上个月的第一天,因为`DATE_SUB()`函数本身不支持直接减去一个月份的操作,只能通过减去天数来间接实现。
阅读全文