试着非常注意什么是字符串,什么是日期时间,什么是什么,什么时候以及为什么。
在下面的插图中,date_time
是Oracle日期数据类型;它显示的方式是由于我的会话NLS_DATE_FORMAT设置。 (我可以更改它以显示时间 - 这一切都取决于NLS_DATE_FORMAT。)在d_t_string
中,我将其转换回字符串,并使用非常特定的格式模型 - 您尝试使用的模型。
如果您需要此日期存储在数据库中,或者用于进一步的计算,请将其保存在日期数据类型中,不要将其转换回字符串。如果你需要显示它(如我以下所做的那样),请将它转换为字符串,并使用非常特定的格式模型。
with inputs (dt, time) as (
select '20130218', '000205' from dual
)
select dt, time, to_date(dt||time, 'yyyymmddhh24miss') as date_time,
to_char (to_date(dt||time, 'yyyymmddhh24miss') , 'yyyy/mm/dd hh24:mi:ss')
as d_t_string
from inputs;
Output:
DT TIME DATE_TIME D_T_STRING
-------- ------ ---------- -------------------
20130218 000205 2013-02-18 2013/02/18 00:02:05
出现错误.... – johnnynemonic
错误是'未实现的特征' – user262503