比方说,我有一个数字字符串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中这样做肯定是可行的,但如果这个数字来自客户端应用程序,那么客户端几乎总是处理这种转换的更好的地方。 –