17

我的表中有一个月列。月份数字存储在此月份列中,例如 1 代表 1 月,2 代表 2 月,依此类推。

如何将数字转换为月份名称,例如一月、二月、三月等。

4

3 回答 3

40
SELECT TO_CHAR(TO_DATE(7, 'MM'), 'MONTH') AS monthname FROM DUAL;

输出

monthname
---------
JULY

如果您真的想要小写或大写的月份名称,您还可以使用:

TO_CHAR(TO_DATE(7, 'MM'), 'month')
TO_CHAR(TO_DATE(7, 'MM'), 'Month')
于 2012-07-09T08:30:19.060 回答
1

如果你想在格式化的月份之后显示一个值,比如年份。月钉在一大堆空格上,这使得值看起来很奇怪。要解决此问题,您必须在附加后续字符串值之前修剪 Month 字符串。

select trim(TO_CHAR(TO_DATE(7, 'MM'), 'MONTH')) || ' 2020' month_yr from dual;
于 2020-07-14T21:28:52.533 回答
1

如果你想指定你的语言,你可以这样使用;

SELECT to_char(TO_DATE(6, 'MM'),'MONTH','NLS_DATE_LANGUAGE=Turkish') from dual;

它返回一个土耳其月份名称:Haziran

于 2020-11-27T07:45:42.740 回答