2015-04-07 167 views
2

我需要幫助將時間戳記varchar2轉換爲date數據類型。將時間戳記varchar2轉換爲日期數據類型

例(爲VARCHAR2):

太陽3月29日10時25分29秒EDT 2015年

我需要將其轉換爲date數據類型這樣的格式:

04/29/2015

任何建議? 感謝

+0

可能重複甲骨文將TIMESTAMP與時區轉換爲DATE](http://stackoverflow.com/questions/20089859/oracle-convert-timestamp-with-timezone-to-date) – user272735

+0

感謝分配的答案,這解決了我的問題!它與我的查詢正常工作! –

回答

0

PL/SQL。首先使用to_timestamp_tz將字符串轉換爲Oracle timestamp with time zone數據類型。然後使用to_char的數據類型的值轉換成你喜歡的文字介紹:

-- edited for readability 
SQL> select to_char(to_timestamp_tz('Sun Mar 29 10:25:29 EDT 2015', 
            'DY MON DD HH24:MI:SS TZD YYYY'), 
        'MM/DD/YYYY') from dual; 

TO_CHAR(TO 
---------- 
03/29/2015 

SQL> 

Oracle文檔:的

+0

謝謝,to_timestamp_tz效果很好! –

0

假設你的日期字符串保存到你的榜樣建議有嚴格的格式,這樣的事情可能工作:

declare 
    s varchar2(32) := 'Sun Mar 29 10:25:29 EDT 2015'; 
    s_mdy varchar2(32); 
    d date; 
begin 
    dbms_output.put_line(s); 
    s_mdy := substr(s,5,6) || substr(s,24); 
    dbms_output.put_line(s_mdy); 
    d := to_date(s_mdy, 'MON DD YYYY'); 
    dbms_output.put_line(to_char(d, 'MM/DD/YYYY')); 
end; 
/

輸出:不需要

Sun Mar 29 10:25:29 EDT 2015 
Mar 29 2015 
03/29/2015 
+0

以上答案解決了我的問題。感謝您的建議,我也會嘗試。 –