oracle中的日期格式

oracle中的日期格式,oracle,Oracle,海, 从数据库中,我想从整个日期格式中只取月份。取月份时,我得到的月份是8月份的08,9月份的09,等等。但我需要得到的月份是8月份的8,9月份的9,等等 我怎么做?有人能帮我吗?此查询返回09: select to_number(to_char(sysdate, 'mm')) from dual select to_char(sysdate, 'MM') from dual 此查询返回9: select ltrim(to_char(sysdate, 'MM'),'0') from du

海,

从数据库中,我想从整个日期格式中只取月份。取月份时,我得到的月份是8月份的08,9月份的09,等等。但我需要得到的月份是8月份的8,9月份的9,等等

我怎么做?有人能帮我吗?

此查询返回09:

  select to_number(to_char(sysdate, 'mm')) from dual
select to_char(sysdate, 'MM') from dual
此查询返回9:

select ltrim(to_char(sysdate, 'MM'),'0') from dual

尝试此操作,只需一个函数调用即可:

select to_char(sysdate, 'FMMM') from dual;

有关“FM”语法的详细信息,请参见。

关于FM运算符,需要了解的一件重要事情是,它基本上起着“切换”的作用。将FM元素视为作用于datetime元素整体的前缀

所以在这种情况下,FMMM说,你只需要月份,基本上是‘把MM(月份在1到12之间)带回来,但去掉前导零。’

例如,如果您使用:

select to_char(sysdate, 'FMMMDD') from dual;
这将被解释为“带回MMDD(1到12之间的月份,1到31之间的天),但从月份和日期中去掉前导零。

例如,如果你的日期是8月8日

select to_char(sysdate, 'MMMDD') from dual;
会回来吗

0808
88
添加FM操作符

select to_char(sysdate, 'FMMMDD') from dual;
会回来吗

0808
88
注意FM是如何在整个datetime元素上运行的