如何解决需要编写oracle sql查询来提取2个日期解析字符串
我需要解析一个字符串来提取示例文本的日期(有时日期格式也会改变),如下所示:
需要在 POP 或 2 列中的Period of Performance 字样之后的日期
结果:
start date:10/1/2018
end date:9/30/2019
示例文本:
Facility:XYZ Location: NYC
Lease date: 10/1/2020- 9/30/2020
Lessor: Edgewater Industrial Park LLC
Period of Performance: 10/1/2018- 9/30/2019
Schedule: region: xyz
或
Location: NY
LeasedateL 10/1/2020- 9/30/2020
Lessor: Edgewater Industrial Park LLC
PoP 10/1/2018- 9/30/2019
Schedule: region: xyz
解决方法
正则表达式可以帮助提取日期部分
SQL> with t as
2 ( select '
3 Facility:ASAHSN Location: LaGuardia NY
4 Lease Number:26DDDKKD-55
5 Lessor: Edgewater Industrial Park LLC
6 Period of Performance: 10/1/2018- 9/30/2019
7 Schedule: region: xyz' txt
8 from dual
9 )
10 select
11 regexp_substr(txt,'[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}.*[[:digit:]]{1,2}/[[:digit:]]{4}')
12 from t;
REGEXP_SUBSTR(TXT,'[
--------------------
10/1/2018- 9/30/2019
然后您可以从那里继续获取每个日期,例如
SQL> with t as
2 ( select '
3 Facility:ASAHSN Location: LaGuardia NY
4 Lease Number:26DDDKKD-55
5 Lessor: Edgewater Industrial Park LLC
6 Period of Performance: 10/1/2018- 9/30/2019
7 Schedule: region: xyz' txt
8 from dual
9 ),10 t1 as
11 (
12 select
13 regexp_substr(txt,2}/[[:digit:]]{4}') dates
14 from t
15 )
16 select
17 substr(dates,1,instr(dates,'-')-1),18 substr(dates,'-')+1)
19 from t1;
SUBSTR(DA SUBSTR(DAT
--------- ----------
10/1/2018 9/30/2019
然后根据需要申请 TO_DATE
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。