如何将日期转换为月份数?

Tao*_*qir 3 sql oracle sqldatetime

我有一列本月在我的表.月份名称和日期存储在此月份列中

Month    
01-JAN-12 
02-FEB-12 
Run Code Online (Sandbox Code Playgroud)

等等.

如何转换日期为本月数如

Month
1 
2 
Run Code Online (Sandbox Code Playgroud)

等等

Mar*_*ari 12

select 
to_char(to_date('01-JAN-12','dd-mon-yy'),'mm') from dual;
Run Code Online (Sandbox Code Playgroud)


Har*_*son 11

Extract对此非常有效

EXTRACT提取并返回指定日期时间字段的值

with fullYear as(
  select (to_date('01-jan-12') + 29*level) dte
    from dual
  connect by level <= 12
  )

select extract(month from dte) month, dte from fullYear ;
Run Code Online (Sandbox Code Playgroud)

给你

MONTH       DTE
1           January, 30 2012 00:00:00+0000
2           February, 28 2012 00:00:00+0000
3           March, 28 2012 00:00:00+0000
4           April, 26 2012 00:00:00+0000
5           May, 25 2012 00:00:00+0000
6           June, 23 2012 00:00:00+0000
7           July, 22 2012 00:00:00+0000
8           August, 20 2012 00:00:00+0000
9           September, 18 2012 00:00:00+0000
10          October, 17 2012 00:00:00+0000
11          November, 15 2012 00:00:00+0000
12          December, 14 2012 00:00:00+0000
Run Code Online (Sandbox Code Playgroud)

  • @APC:嗯?Extract(month from dte) 返回##,上面显示的“Dte”列只是从 with 子句返回的日期。我添加了空格以帮助更明显,但提取返回一个数字...... (2认同)