sql - 如何从sql oracle 9i中的字符串中提取日期
问题描述
我在表中有列解释(VARCHAR2):
No| Explanation
1 | Shipment of cabbage by agreement 29.04.2019 TAX Free
2 | Payment for screws (01.04.19) Tax: 13.55 %
3 | For reserch by deal dated 01.01.2015 Tax free
4 | Tax payment for the may 2019
我需要查询,这将回答“条目中是否有某种形式的日期?” 是/否每个条目。在 Oracle 9i 上可以吗?
我尝试了一些解决方案。但遇到问题:
“ORA-01858:在需要数字的地方发现了一个非数字字符”。
我现在不清楚日期戳在哪里。
select to_char(to_date(EXPLANATION, 'DD.MM.YYYY')) from PAYMENTDOC
解决方案
您可以使用正则表达式执行此操作。试试下面的代码:
select No, Explanation,
case when regexp_instr(Explanation,'\d{2}.\d{2}.\d{2}')!=1 then
'Y'
when regexp_instr(Explanation,'\d{2}.\d{2}.\d{4}')!=1 then
'Y'
when REGEXP_instr(Explanation, '(January|February|March|April|May|June|July|August|September|October|November|December) [0-9]{4}')!=1 then
'Y'
END Does_entry_have_a_date_in_some_form_in_it
from table_name;
输出 :
No| Explanation | Does_entry_have_a_date_in_some_form_in_it
1 | Shipment of cabbage by agreement 29.04.2019 TAX Free | Y
2 | Payment for screws (01.04.19) Tax: 13.55 % | Y
3 | For reserch by deal dated 01.01.2015 Tax free | Y
4 | Tax payment for the may 2019 | Y
推荐阅读
- redis - Stack Exchange Redis 客户端超时
- apache-spark - 使用 Spark 读取 Azure Synapse 表
- reactjs - reactjs中的循环和渲染
- java - Java如何使用Intellij中另一个模块的方法
- reactjs - 需要在lookup字段中绑定当前的sitecollection名称,并在canvas app new form的onstart中传入对应的lookupid
- javascript - 反应错误的标头请求
- python - 熊猫系列独特的方法显示看起来相同的值
- c# - 类型已经定义了一个名为“this”的成员
- sql - Oracle Regex Replace With Condition
- r - Kable 表 R:对角线单元格以粗体显示