PL / SQL - 无法使用to_date()将字符串转换为所需的日期格式

时间:2015-12-26 05:37:50

标签: sql oracle plsql

我有一个像" 01-JAN-15 13:05:01"的字符串。我使用to_date()函数将字符串转换为日期格式并将其存储到日期字段。但是,存储的时间值不正确,即" 01/01/2015 04:12:43 PM"。我使用to_char()函数来显示转换日期的值,但返回的值没有任何问题。

输入(字符串):01-JAN-15 13:05:01

期望输出(日期):01/01/15 01:05:01 PM

实际输出(日期):01/01/15 04:12:43 PM

转换代码:

select to_date('01-JAN-15 13:05:01', 'dd-mon-yy hh24:mi:ss') into result_date from dual;

TO_CHAR()

to_char(result_date, 'dd/mm/yyyy hh:mi:ss');

更新

whenever sqlerror exit 99 ROLLBACK;
set echo on;
set verify on;
set serverout on;
declare
    result_date date;
begin
    select to_date('01-JAN-15 13:05:01', 'dd-mon-yy hh24:mi:ss') into result_date from dual;
    insert into temp_table values (result_date);
    commit;
end;

1 个答案:

答案 0 :(得分:0)

以上代码不应该出问题。我在代码片段下面运行并给了我预期的结果。如果您仅使用上述代码,请仔细检查一次。

DECLARE
result_date DATE;
BEGIN

select to_date('01-JAN-15 13:05:01', 'dd-mon-yy hh24:mi:ss') INTO result_date from dual;
DBMS_OUTPUT.PUT_LINE(to_char(result_date, 'dd/mm/yyyy hh:mi:ss AM'));

END;