从 Oracle 中的日期获取月份名称

Posted

技术标签:

【中文标题】从 Oracle 中的日期获取月份名称【英文标题】:Get month name from date in Oracle 【发布时间】:2011-05-28 16:50:33 【问题描述】:

如何从 Oracle 中的给定日期获取月份名称?

如果给定的日期是'15-11-2010',那么我想要从这个日期开始的November

【问题讨论】:

【参考方案1】:
select to_char(sysdate, 'Month') from dual

在您的示例中将是:

select to_char(to_date('15-11-2010', 'DD-MM-YYYY'), 'Month') from dual

【讨论】:

【参考方案2】:

试试这个,

select to_char(sysdate,'dd') from dual; -> 08 (date)
select to_char(sysdate,'mm') from dual; -> 02 (month in number)
select to_char(sysdate,'yyyy') from dual; -> 2013 (Full year)

【讨论】:

这是正确的,但没有回答问题如何获取月份name【参考方案3】:

to_char(mydate, 'MONTH') 将完成这项工作。

【讨论】:

【参考方案4】:

在 Oracle(至少 11g)数据库中:

如果你打了

select to_char(SYSDATE,'Month') from dual;

它给出未格式化的月份名称,带有空格,例如May 将被指定为“May”。字符串 May 会有空格。

为了格式化月份名称,即修剪空格,您需要

select to_char(SYSDATE,'fmMonth') from dual;

这将返回“May”。

【讨论】:

【参考方案5】:

如果您尝试从字段中提取值,您可以使用:

select extract(month from [field_name])
from [table_name]

您还可以为上面的“月”提取值插入日期或年份。

【讨论】:

这只会给出月份值而不是文本。【参考方案6】:

试试这个

select to_char(SYSDATE,'Month') from dual;

全名试试这个

select to_char(SYSDATE,'Mon') from dual;

缩写

您可以在这里找到更多选项:

https://www.techonthenet.com/oracle/functions/to_char.php

【讨论】:

【参考方案7】:

如果您采用系统日期:

--Full month name :
select to_char(trunc(sysdate,'MONTH'),'MONTH') as month from dual; --MARCH    
--Short month name:
select to_char(trunc(sysdate,'MON'),'MON') as month from dual; --MAR
--Month number:
select to_char(trunc(sysdate,'MM'),'MM') as month from dual;  --03

如果您选择特定日期:

--Full month's name:
select to_char(trunc(to_date('11-03-2021','DD-MM-YYYY'),'MONTH'),'MONTH') as month from dual; --MARCH
--Short month's name:
select to_char(trunc(to_date('11-03-2021','DD-MM-YYYY'),'MON'),'MON') as month from dual; --MAR
--Month's number:
select to_char(trunc(to_date('11-03-2021','DD-MM-YYYY'),'MM'),'MM') as month from dual;  --03

【讨论】:

以上是关于从 Oracle 中的日期获取月份名称的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Presto 中的日期获取月份名称

如何从 SQL Server 中的日期获取月份编号(不是月份名称)?

如何从python中的日期获取月份名称

从日期获取月份名称

oracle中从指定日期中获取月份或者部分数据

从字符串日期获取包含月份名称的周数