2013-06-28 51 views
1

我有串臨客這樣的:Oracle - 從varchar字符串中提取時間戳記?

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

我需要從這個字符串中提取日期:日:15月:4,年份:2013,並把檢索到的信息爲時間戳(6),像這樣:

to_timestamp(v_string) 

..其中v_string檢索值(在這種情況下,'13/04/15 ')

什麼是正則表達式來做到這一點的最好辦法,讓'13/04/15' 的結果在這個例子中?

回答

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.