6

テーブルにMonthという列があります。月の名前と日付は、次のように今月の列に保存されます

Month    
01-JAN-12 
02-FEB-12 

等々。

DATEを次のような月番号に変換するにはどうすればよいですか?

Month
1 
2 

4

7 に答える 7

15
select 
to_char(to_date('01-JAN-12','dd-mon-yy'),'mm') from dual;
于 2012-12-26T14:11:05.370 に答える
13

抽出はこれに完全に機能します

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 ;

あなたにあげる

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
于 2012-12-26T13:41:41.367 に答える
2

TO_CHARのように関数を使用 しTO_CHAR(my_column, 'MM')ます。

特定の形式については、形式コンバーターが必要になりますTO_CHAR(month, 'FmMM')(このトリックについては Nicholas Krasnov に感謝します)。

month列がまだ日付型でない場合は、最初に日付に変換する必要があります: TO_CHAR(TO_DATE(month, 'DD-Mon-IY'), 'FmMM').

于 2012-12-26T13:26:05.520 に答える
0

オラクルが組み込み機能を提供する場合のケースを書くことに関しては完全に同意します。

SELECT EXTRACT(MONTH FROM DATE '2012-03-15') FROM DUAL;

SELECT EXTRACT(MONTH FROM TO_DATE('01-JAN-12', 'DD-MON-RR')) month_to_number FROM DUAL;

select to_number(to_char(to_date('01-JAN-12','dd-mon-yy'),'mm')) month_to_number from     dual;

select to_number(to_char(trunc(sysdate), 'mm')) month_to_number from dual;
于 2012-12-26T20:07:37.933 に答える
-2

「DatePart」関数も使用できます。

http://docs.oracle.com/cd/E10530_01/doc/epm.931/html_esb_techref/maxl/dml/funcs/datepart.htm

于 2012-12-26T13:30:43.313 に答える
-7
        SELECT  ( CASE yourDate
        WHEN 'Jan' THEN 1
        WHEN 'Feb' THEN 2
        WHEN 'Mar' THEN 3
        WHEN 'Apr' THEN 4
        WHEN 'May' THEN 5
        WHEN 'Jun' THEN 6
        WHEN 'Jul' THEN 7
        WHEN 'Aug' THEN 8
        WHEN 'Sep' THEN 9
        WHEN 'Oct' THEN 10
        WHEN 'Nov' THEN 11
        WHEN 'Dec' THEN 12
       END )
于 2012-12-26T13:27:50.953 に答える