我有一个像" 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;
答案 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;