使用正则表达式从字符串中提取日期 - SQL ORACLE

时间:2018-03-20 10:19:12

标签: sql regex oracle parsing extract

假设我有一个字段numCommande,字符串为“1610131223ZVV40”,其中161013是yymmdd形式的日期。

SQL中是否有任何方法可以从字符串字段中提取13/10/2016日期?

谢谢!

2 个答案:

答案 0 :(得分:3)

如果'日期'始终是前六个字符,您可以通过简单的substr()调用来提取这些字符:

substr(numCommande, 1, 6)

给你'161013';然后将该字符串转换为具有合适格式模型的日期:

select to_date(substr(numCommande, 1, 6), 'RRMMDD') from your_table;

使用静态值的快速演示:

select to_date(substr('1610131223ZVV40', 1, 6), 'RRMMDD') from dual;

TO_DATE(SU
----------
2016-10-13

答案 1 :(得分:1)

SELECT TO_CHAR(TO_DATE(SUBSTR(Column_Name,1,6), 'YYMMDD'),'DD/MM/YYYY') FROM TableName

现场演示

  

http://sqlfiddle.com/#!4/ce715/5