oracle中有没有相同的东西功能?我使用mssql中的stuff函数将原始日期时间(以字符串格式)转换为正确的日期时间 MSSQL查询
select convert(datetime,
'20'+substring(stuff(stuff(stuff(stuff(stuff(stuff(convert(varchar,'24051103084950') , 3,0,'-'), 6,0,'-'), 9,0,' '), 12,0,':'), 15,0,':'), 17,2,''),7,2)+'-'
+SUBSTRING(stuff(stuff(stuff(stuff(stuff(stuff(convert(varchar,'24051103084950'),3,0,'-'), 6,0,'-'), 9,0,' '), 12,0,':'), 15,0,':'), 17,2,''),4,2)+'-'
+SUBSTRING (stuff(stuff(stuff(stuff(stuff(stuff(convert(varchar,'24051103084950'), 3,0,'-'), 6,0,'-'), 9,0,' '), 12,0,':'), 15,0,':'), 17,2,''),1,2)
+ SUBSTRING(stuff(stuff(stuff(stuff(stuff(stuff( convert(varchar,'24051103084950'),3,0,'-'), 6,0,'-'), 9,0,' '), 12,0,':'), 15,0,':'), 17,2,''),9,15))
在上面的查询中,'24051103084950'是 ddmmyyhhmiss 格式的原始数据。上述查询的输出如下
(No column name)
2011-05-24 03:08:40.000
我需要将同一个查询转换为oracle。指导我去做。
答案 0 :(得分:1)
您可以使用时间戳/字符串转换功能来简化此操作:
select to_char(
to_timestamp('24051103084950', 'DDMMYYHH24MISSFF2'),
'YYYY-MM-DD HH24:MI:SS.FF3')
from dual
N.B。 FF2是毫秒到2位,FF3是毫秒到3位。