如何把一个字段中2个下划线中的字符取出来?多谢

charlesxu 2011-07-25 05:20:58
比如字段的值是SMMAL_220_01HR_20110620_014_000.xml,我想取到20110620,该如何写sql语句呢?需要用什么样的函数?
...全文
462 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoyoumou 2011-07-25
  • 打赏
  • 举报
回复
SELECT substr('SMMAL_220_01HR_20110620_014_000.xml',instr('SMMAL_220_01HR_20110620_014_000.xml','_',1,3)+1,8) as cdate from dual;

CDATE
----------------
20110620
luoyoumou 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 charlesxu 的回复:]

能确定,但是subst不仅要在select后面写,而且要在where后面的字段里用

select Filename, SUBSTR(Filename, 16,8) as time_x from SAFEERROR where time_x<getdate()
[/Quote]

-- 是第三个下划线到第四个下划线之间,是吧?
wallace_jjh 2011-07-25
  • 打赏
  • 举报
回复
如果文件名格式固定
select Filename as 文件名, ERRORTXT as 文件是否存在 from SAFEERROR where Filename like '%HR%' AND SUBSTR(Filename, 16, 8) > getdate()
BenChiM888 2011-07-25
  • 打赏
  • 举报
回复

--自己替换下字符串。
[SYS@myorcl] SQL>SELECT SUBSTR('SMMAL_220_01HR_20110620_014_000.xml',
2 INSTR('SMMAL_220_01HR_20110620_014_000.xml', '_', 1, 3) + 1,
3 INSTR('SMMAL_220_01HR_20110620_014_000.xml', '_', 1, 4) -
4 INSTR('SMMAL_220_01HR_20110620_014_000.xml', '_', 1, 3) - 1) C
5 FROM DUAL
6 ;

C
--------
20110620
jym2002 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 charlesxu 的回复:]
上面的sql语句执行时出错误了
[/Quote]
用instr函数返回第三个'_'的位置 然后再截取
charlesxu 2011-07-25
  • 打赏
  • 举报
回复
上面的sql语句执行时出错误了
charlesxu 2011-07-25
  • 打赏
  • 举报
回复
能确定,但是subst不仅要在select后面写,而且要在where后面的字段里用

select Filename, SUBSTR(Filename, 16,8) as time_x from SAFEERROR where time_x<getdate()
luoyoumou 2011-07-25
  • 打赏
  • 举报
回复
20110620 字串 前面的下划线的个数固定不?也就是说:前面有几个下划线?能确定不?
horizonlyhw 2011-07-25
  • 打赏
  • 举报
回复
前面的底线数量是一样多的么?

如果有规则 就是用 instr找到 时间前面那个底线的位置 然后substr
charlesxu 2011-07-25
  • 打赏
  • 举报
回复
错了,是要在where子句中如何写?

select Filename as 文件名, ERRORTXT as 文件是否存在 from SAFEERROR where Filename like '%HR%' AND TIME_ID > getdate()

比如TIME_ID的值是SMMAL_220_01HR_20110620_014_000.xml,如何取出20110620并和getdate()进行比较呢?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧