2014-04-16 322 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格式的值。你能列出列的所有值/错误值吗? –