我需要帮助将时间戳转换为varchar2
到date
数据类型。
示例(作为varchar2):
2015年3月29日星期日10:25:29
我需要将它转换为date
数据类型,如以下格式:
2015年4月29日
有什么建议吗? 感谢
答案 0 :(得分: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
答案 1 :(得分: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文档: