You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle中获取上月15日的YYYYMMDD格式日期?

Oracle获取上个月15号并格式化为YYYYMMDD格式

直接使用以下SQL语句即可得到目标结果:

SELECT TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), -1) + 14, 'YYYYMMDD') AS LAST_MONTH_15TH
FROM DUAL;

语句拆解说明:

  • TRUNC(SYSDATE, 'MM'):将当前日期截断至当月第一天,例如当前日期为2024-05-20时,返回2024-05-01
  • ADD_MONTHS(..., -1):对截断后的日期执行减1个月操作,得到上个月的第一天,即2024-04-01
  • +14:上个月第一天加14天,直接得到上个月15号(因为当月第一天是1号,加14天后正好是15号)
  • TO_CHAR(..., 'YYYYMMDD'):将日期类型转换为YYYYMMDD格式的字符串

补充说明:

Oracle的ADD_MONTHS函数会自动处理跨年、不同月份天数差异的场景:

  • 若当前是1月,执行后会得到去年12月15号
  • 若上个月是2月(无论平闰年),也能正确返回2月15号

你也可以用另一种基于月末日期的写法,逻辑等价但稍显复杂:

SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -1)) - (EXTRACT(DAY FROM LAST_DAY(ADD_MONTHS(SYSDATE, -1))) - 15), 'YYYYMMDD') AS LAST_MONTH_15TH
FROM DUAL;

内容的提问来源于stack exchange,提问作者Sakura56

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 09:24:26