試着非常注意什麼是字符串,什麼是日期時間,什麼是什麼,什麼時候以及爲什麼。
在下面的插圖中,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