消息关闭
    暂无新消息!

ORCL 截取字符串的问题

问题作者 : 风之2017-07-07发布
orcl数据库表a有个时间的字段叫time  字段里有2017-01-11 和2010年01月01日 和很多这种长度超过11位的数字201101111234 

我想把像这样长的数字截取前8位,并转换成2011-01-11这样的格式该怎么办。

我使用substr((select 。。。),0,8) 这样查询报错,不知道怎么办了,求各位大咖帮帮忙

2个回答

︿ 1

with m(c) as (
    select '111111111111' from dual union all
    select '2014年01月01日' from dual union all
    select '2011-09-03' from dual union all
    select '2013.12.12' from dual
)
select substr(regexp_replace(c,'[^0-9]',''),1,8) from m 

︿ 0
可以这样的:SUBSTR(REPLACE(REPLACE(REPLACE(REPLACE(time,'-',''),'年',''),'月',''),'日',''),0,8)