2017-05-03 169 views
0

我有一個varchar字段出現爲:MON-YYYY。從月份名稱獲取月份編號

我需要從字段中提取月份編號。 例如:APR 2017

預期輸出:04

當然,因爲我們只有12,我可以做一個串併案件,而是試圖做一次性使用如下:

to_char(to_date(Period,'MON YYYY'),'MM') as Month 

會一直出現錯誤-numeric在預期非數字的地方發現等。

這裏有什麼問題?是否還有其他更簡單的方法可以從2017年4月開始獲得「04」

+0

你正在做這個正確的。將字符串轉換爲日期,然後運行to_char以獲取月份的數字值。你錯誤來自其他的東西。你能提供這個代碼和你收到的實際錯誤嗎? – unleashed

+0

我懷疑你的列中的字符串值不是你期望的格式。 –

回答

0

檢查你的Oracle語言,這似乎是另一種。

因爲IM使用此代碼嘗試:

select to_char(to_date('ABR 1990','MONTH yyyy'), 'mm') as MONTH from dual; 

,我也得到:

Result

注:我的母語是西班牙語。

1

EXTRACT功能如何?

http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions050.htm

EXTRACT(MONTH FROM to_date(Period,'MON YYYY'),'MM') as Month 
+0

我得到一個'缺少右括號'對此。我認爲當你從問題轉換它的時候,你保留了to_char和to_char格式的paren。 – unleashed

+0

你是對的,我的錯誤,留在你的文章的括號中。 –

+0

你已經留在','MM'部分了...... –