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

Oracle SQL中是否有函数可将月份名称转换为对应月份数字?

Oracle SQL 月份名称转月份数字实现方案

Oracle没有提供专门仅用于转换月份名称到数字的独立函数,但可以通过TO_DATE+TO_CHAR组合实现需求,无需额外关联自定义的日期或年份参数。

基础用法(英文缩写月份名,如FEB)

输入英文月份缩写,输出两位字符格式的月份数字:

SELECT TO_CHAR(TO_DATE('FEB', 'MON'), 'MM') AS month_num FROM DUAL;

执行后输出结果为02。

兼容多会话语言的写法

如果数据库会话默认语言不是英文,建议显式指定日期语言参数,避免识别报错:

SELECT TO_CHAR(TO_DATE('FEB', 'MON', 'NLS_DATE_LANGUAGE=AMERICAN'), 'MM') AS month_num FROM DUAL;

其他适配场景

  • 输入为全拼月份名(如FEBRUARY)时,将格式符替换为MONTH即可:
    SELECT TO_CHAR(TO_DATE('FEBRUARY', 'MONTH', 'NLS_DATE_LANGUAGE=AMERICAN'), 'MM') AS month_num FROM DUAL;
    
  • 需要输出数字类型的月份时,外层嵌套TO_NUMBER:
    SELECT TO_NUMBER(TO_CHAR(TO_DATE('FEB', 'MON', 'NLS_DATE_LANGUAGE=AMERICAN'), 'MM')) AS month_num FROM DUAL;
    

以上实现依赖Oracle内置的日期补全规则,仅需传入月份名称即可,不会绑定额外的自定义日期、年份参数。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:48:03