2015-04-07 168 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

以上答案解决了我的问题。感谢您的建议,我也会尝试。 –