答案是获取上个月最后一天的日期可通过数据库日期函数实现,如MySQL使用LAST_DAY(CURDATE() - INTERVAL 1 MONTH),SQL Server用EOMONTH(GETDATE(), -1),PostgreSQL则用DATE_TRUNC('month', CURRENT_DATE) - INTERVAL '1 day'。

获取上个月最后一天的日期,可以通过组合使用 SQL 的日期函数来实现。不同数据库语法略有差异,但思路一致:先找到当前月的第一天,减去一天,就得到上个月的最后一天。
通用方法(适用于大多数数据库)
基本逻辑是:- 取当前日期所在月的第一天
- 减去 1 天
以 MySQL 为例:
```sqlSELECT LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) AS last_day_prev_month;
```
或:
```sqlSELECT DATE_SUB(DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE()) DAY), INTERVAL 0 DAY);
```
更简洁方式(MySQL):
```sql
SELECT LAST_DAY(CURDATE() - INTERVAL 1 MONTH);
```
SQL Server 写法
```sqlSELECT EOMONTH(GETDATE(), -1) AS last_day_prev_month;
```
EOMONTH 函数直接支持偏移量,-1 表示上个月最后一天。
PostgreSQL 写法
```sqlSELECT (DATE_TRUNC('month', CURRENT_DATE) - INTERVAL '1 day')::date AS last_day_prev_month;
```
将当前日期归整到月初,减去一天即可。
基本上就这些常用写法。根据你使用的数据库选择对应函数即可。核心思路不变:定位上个月末,最简单就是“本月第一天减一天”或直接用内置月末函数。不复杂但容易忽略时区和日期格式问题。










