Sql 将时间戳varchar2转换为日期数据类型
我需要帮助将时间戳转换为Sql 将时间戳varchar2转换为日期数据类型,sql,oracle,Sql,Oracle,我需要帮助将时间戳转换为varchar2数据类型 示例(如varchar2所示): 2015年3月29日星期日美国东部时间10:25:29 我需要将其转换为如下格式的date数据类型: 2015年4月29日 有什么建议吗? 谢谢假设您的日期字符串保持您的示例所建议的严格格式,类似这样的方式可能会奏效: declare s varchar2(32) := 'Sun Mar 29 10:25:29 EDT 2015'; s_mdy varchar2(32); d date; begin
varchar2
数据类型
示例(如varchar2所示):
2015年3月29日星期日美国东部时间10:25:29
我需要将其转换为如下格式的date
数据类型:
2015年4月29日
有什么建议吗?
谢谢假设您的日期字符串保持您的示例所建议的严格格式,类似这样的方式可能会奏效:
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
PL/SQL不是必需的。首先使用
to_timestamp_tz
将字符串转换为带时区的Oracle时间戳
数据类型。然后使用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文档: