我需要从字符串“Verify renter did not pick up vehicle amt 400$.”中提取日期部分。 采取的措施:需要与供应商进行电话跟进 下一个操作日期时间:2023年5月4日09:00:00本地” 我试过使用'\d{1,2}',但对于少数情况,它从400$中提取40,我也试过使用substr(comment,-28)提取“04-May-2023 09:00:00 Local”,但在少数情况下,它只在最后提到EST,因此这在这种情况下不起作用。 需要你的帮助
SQL> with test (col) as
2 (select 'Verify renter did not pick up vehicle amt 400$.
3 Action Taken:Need Followup Call with Supplier
4 Next Action DateTime: 04-May-2023 09:00:00 Local' from dual
5 union all
6 select 'whatever text goes here 500$ and action taken was: nothing while
7 next action DateTime: 01-Sep-2023 11:00:00 EST' from dual
8 ),
9 temp as
10 -- extract everything after "DateTime"
11 (select substr(col, instr(col, 'DateTime')) val
12 from test
13 )
14 -- extract everything between the 1st and and the 3rd space
15 select substr(val, instr(val, ':') + 2,
16 instr(val, ' ', 1, 3) - instr(val, ':') - 1
17 ) result
18 from temp;
RESULT
--------------------------------------------------------------------------------
04-May-2023 09:00:00
01-Sep-2023 11:00:00
SQL>
1条答案
按热度按时间t0ybt7op1#
基于您发布的示例数据:
一个简单的选择是使用
substr + instr
组合;我一步一步地做,以使它更清楚,但你可以(如果你想)* 合并 * 成一个。此外,它**取决于源数据。因为你只贴了一个例子,我们只能试着想象你还可能有什么。然而,由于没有证据表明实际上有任何不同,在这里你。