将 varchar2 转换为日期

Posted

技术标签:

【中文标题】将 varchar2 转换为日期【英文标题】:Convert varchar2 to date 【发布时间】:2014-10-23 06:07:26 【问题描述】:

以下是我的代码示例。我需要将 varchar2 中的 need_by 转换为日期格式的 need_by_date。时区信息是我遇到问题的地方。 此日期格式的正确格式字符串是什么?

declare

need_by varchar2(50);
need_by_date date;
begin

need_by := '2014-11-24T04:31:43.967Z';
 need_by_date := to_date(need_by,'yyyy-MM-dd"T"HH24:MI:ss');

 DBMS_OUTPUT.PUT_LINE(need_by_date);

end;

提前致谢

【问题讨论】:

您的日期格式应该是什么样子?您是否只需要日期或数据和时间? 需要完整的东西。日期和时间。 【参考方案1】:
select to_timestamp('2014-11-24T04:31:43.967Z', 'yyyy-MM-dd"T"HH24:MI:SS.FF3"Z"') at time zone 'UTC' from dual;

(".967" 是小数秒,"Z" 是 UTC)

【讨论】:

以上是关于将 varchar2 转换为日期的主要内容,如果未能解决你的问题,请参考以下文章

数据类型从 varchar2 到日期、数字等的隐式转换

oracle日期字段为varchar2类型,为啥能直接比较

Oracle VIEW - 将 VARCHAR2 转换为 DATE 并找到 DATE 的 MIN/MAX

需要对 varchar2 列进行排序

oracle 中比较日期大小,日期定义的是varchar2类型的,比如'2011-10-21'

如何在 SQL 中将 varchar2 转换为数字