首页/数据/SQL 速查/LAST_DAY 取月末日期
本包目录(311 条)
查询基础33 条连接与子查询40 条聚合与窗口函数54 条
函数速查60 条
变更与事务52 条性能与执行计划72 条

LAST_DAY 取月末日期

返回所在月份的最后一天:做月度对账、账单周期、月末快照时常用;MySQL 有 LAST_DAY,PostgreSQL 用月初加一个月再减一天。

SQL 速查数据更新于 2026-10-12

MySQL

MySQL
SELECT LAST_DAY('2024-02-15');   -- 2024-02-29
SELECT LAST_DAY(CURDATE());
SELECT LAST_DAY(DATE_ADD(CURDATE(), INTERVAL 1 MONTH));  -- 下月月末

PostgreSQL

PostgreSQL
SELECT (date_trunc('month', DATE '2024-02-15') + INTERVAL '1 month - 1 day')::date;
-- 2024-02-29
MySQLLAST_DAY(date) 返回当月最后一天,忽略时分秒
PostgreSQL无同名函数;月初截断 + '1 month - 1 day' 组合
用途月结区间、订阅到期日、报表期末余额

易错点

  • 把“月末”当成固定 30/31 号会踩二月与闰年,一律用函数或日期运算推导
  • PostgreSQL 里 date_trunc('month', d) + interval '1 month - 1 day' 的结果是 timestamp,比较日期列前记得 ::date

数据来源与参考

  • MySQL 8.0 Reference Manual · LAST_DAY
  • PostgreSQL Documentation · Date/Time Functions and Operators
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌