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

Oracle如何从sysdate获取上月完整英文月份名称而非数字编号

Oracle SQL 月份数字转完整月份名方案

实现英文月份名(如October)

直接使用TO_CHAR函数指定格式即可,你可以把原SQL调整为:

SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'FMMONTH', 'NLS_DATE_LANGUAGE = AMERICAN') FROM dual;

说明:

  • FMMONTH格式符表示返回完整月份名,FM前缀会自动去掉月份名末尾多余的补位空格,不加FM的话返回结果会在短月份名后补空格对齐最长月份名的长度
  • 显式指定NLS_DATE_LANGUAGE参数可以避免数据库环境语言不同导致返回非英文月份名的问题

实现中文月份名(如10月)

如果需要输出中文月份名,仅需修改NLS参数即可:

SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'FMMONTH', 'NLS_DATE_LANGUAGE = SIMPLIFIED CHINESE') FROM dual;

处理自定义日期字段

如果你需要处理示例中提到的04-NOV-2021这类存储在表中的日期字段(假设字段名为record_dt),替换掉语句中的SYSDATE即可:

-- 取指定日期上一个月的英文月份名
SELECT TO_CHAR(ADD_MONTHS(record_dt, -1), 'FMMONTH', 'NLS_DATE_LANGUAGE = AMERICAN') FROM 你的表名;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:27:03