2014-04-16 365 views
0

比方說,我有一個數字字符串82014,代表2014年8月。我想將82014轉換爲2014年8月的最後一天,時間爲12.00.00.000000000 AM。將時間戳轉換爲時間戳

那麼的 '82014' 完全轉化爲時間戳 看起來像'31 - 8月14 12.00.00.000000000 AM」

+0

數字字符串是一個varchar或類似的東西,對吧? –

+0

@RaphaëlAlthaus它實際上是一個數字數據類型 – JohnD

+0

儘管在Oracle中這樣做肯定是可行的,但如果這個數字來自客戶端應用程序,那麼客戶端幾乎總是處理這種轉換的更好的地方。 –

回答

5

嘗試這些轉換:

select CAST(LAST_DAY(to_timestamp('082014', 'MMYYYY')) AS TIMESTAMP) from dual; 

如果82014將是一個數首先嚐試以下版本:

select CAST(LAST_DAY(to_timestamp(lpad(cast(82014 as varchar2(6)), 6, '0'), 'MMYYYY')) AS TIMESTAMP) from dual 
+0

嗨,當我試圖用列名替換82014時,它給了我一個有效的月份。任何提示呢? – JohnD

+0

@JohnD如果你有一個「不是有效月份」的錯誤,那麼列數據沒有一個不是MMYYYY格式的值。你能列出列的所有值/錯誤值嗎? –