【发布时间】:2013-10-02 01:18:00
【问题描述】:
我在 oracle 表中有一个行字符串。
Some text № 3694452 from 31.08.2013, stilltext 02.09.2013 18:16:27
如何获取“02.09.2013 18:16:27”(从行的末尾到 Stilltext 之后) 用于将其转换为日期。
【问题讨论】:
-
你有没有尝试过?因为这是一种很好的做法。
我在 oracle 表中有一个行字符串。
Some text № 3694452 from 31.08.2013, stilltext 02.09.2013 18:16:27
如何获取“02.09.2013 18:16:27”(从行的末尾到 Stilltext 之后) 用于将其转换为日期。
【问题讨论】:
假设日期字符串总是位于文本的末尾, 你可以像这样使用正则表达式:
select
to_date(
regexp_substr(your_column_name, '\d{2}.\d{2}.\d{4} \d{2}:\d{2}:\d{2}$'),
'dd.mm.yyyy hh24:mi:ss')
from you_table_name;
【讨论】:
这假定日期总是在字符串的末尾并且格式是固定的。
with dummy as
(select '3694452 from 31.08.2013, stilltext 02.09.2013 18:16:27' data
from dual)
select to_date(substr(data,length(data)-19), 'MM.DD.YYYY HH24:MI:SS')
from dummy
有更优雅的方法可以使用正则表达式来做到这一点,但我假设这已经足够了。
【讨论】:
length(data)-19 在这种情况下可以缩短为 -19。