比方說,我有一個數字字符串82014,代表2014年8月。我想將82014轉換爲2014年8月的最後一天,時間爲12.00.00.000000000 AM。將時間戳轉換爲時間戳
那麼的 '82014' 完全轉化爲時間戳 看起來像'31 - 8月14 12.00.00.000000000 AM」
比方說,我有一個數字字符串82014,代表2014年8月。我想將82014轉換爲2014年8月的最後一天,時間爲12.00.00.000000000 AM。將時間戳轉換爲時間戳
那麼的 '82014' 完全轉化爲時間戳 看起來像'31 - 8月14 12.00.00.000000000 AM」
嘗試這些轉換:
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
嗨,當我試圖用列名替換82014時,它給了我一個有效的月份。任何提示呢? – JohnD
@JohnD如果你有一個「不是有效月份」的錯誤,那麼列數據沒有一個不是MMYYYY格式的值。你能列出列的所有值/錯誤值嗎? –
數字字符串是一個varchar或類似的東西,對吧? –
@RaphaëlAlthaus它實際上是一個數字數據類型 – JohnD
儘管在Oracle中這樣做肯定是可行的,但如果這個數字來自客戶端應用程序,那麼客戶端幾乎總是處理這種轉換的更好的地方。 –