Oracle - 从varchar字符串中提取时间戳?

时间:2013-06-28 11:46:08

标签: regex oracle date plsql timestamp

我有这个字符串:

'Podlaski Oddział Straży Granicznej 
Informacja dobowa o zdarzeniach na terenie województwa podlaskiego 
w dniu 15.04.2013 r.'

我需要从这个字符串中提取日期:day:15,month:4,year:2013并将检索到的信息放入时间戳(6),如下所示:

to_timestamp(v_string)

..其中v_string是检索值(在本例中为'13 / 04/15')

使用正则表达式执行此操作的最佳方法是什么,在此示例中得到'13 / 04/15'?

1 个答案:

答案 0 :(得分:2)

SQL> alter session set nls_timestamp_format = 'YYYY-MM-DD HH24:MI:SSXFF';

Session altered.

SQL> with t as (
  2     select 'Podlaski Oddział Straży Granicznej
  3  Informacja dobowa o zdarzeniach na terenie województwa podlaskiego
  4  w dniu 15.04.2013 r.'
  5         as original_string
  6       from dual)
  7  select to_timestamp(regexp_substr(original_string, '\d\d\.\d\d\.\d\d\d\d'), 'DD.MM.YYYY') as the_timestamp
  8    from t;

THE_TIMESTAMP
---------------------------------------------------------------------------
2013-04-15 00:00:00,000000000

1 row selected.