【问题标题】:Is there a stuff() function available in oracle?oracle 中是否有可用的 stuff() 函数?
【发布时间】:2012-08-24 21:41:46
【问题描述】:

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。指导我去做。

【问题讨论】:

标签: sql oracle11g


【解决方案1】:

您可以使用时间戳/字符串转换函数来简化此操作:

select to_char(
         to_timestamp('24051103084950', 'DDMMYYHH24MISSFF2'), 
         'YYYY-MM-DD HH24:MI:SS.FF3') 
  from dual

注意FF2 毫秒到 2 位,FF3 毫秒到 3 位。

【讨论】:

    猜你喜欢
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 2010-09-29
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多