2013-01-03 48 views
-1

有人能找到的bug上提到的代码,请:错误:ORA-01861:文字不匹配格式字符串

INSERT INTO FMS_LOG (FL_ID,FL_USER_ID, FL_OFFICE_ID, FL_DATETIME, 
        FL_IP,FL_FISCAL_YEAR,FL_USER_NAME,FL_USER_ADDRESS) 
VALUES 
(105, 18, 18, 
    TO_DATE('03/Jan/2013 15:51:33PM','DD/MON/YY HH:MI:SSAM'), 
'127.0.0.1', 
'2069/70', 
'dordhankuta', 
'balaju'); 

FL_DATETIME具有字段类型DATE

这是抛出错误:

ORA-01861: literal does not match format string 

服务器端代码:

$this->db->query(" 
    INSERT INTO FMS_LOG (FL_ID,FL_USER_ID, FL_OFFICE_ID, FL_DATETIME, FL_IP,FL_FISCAL_YEAR,FL_USER_NAME,FL_USER_ADDRESS) 
    VALUES 
     (
     $next_id, 
     $userinfo[user_id], 
     $userinfo[user_office_id], 
     TO_DATE('".date('d/M/Y H:i:sA', time()+20700)."','DD/MON/YY HH:MI:SSAM'), 
     '$client_ip', 
     '$fiscal_year', 
     '$userinfo[user_full_name]', 
     '$address' 
     )   
    "); 
+0

这是'YYYY'而不''YY'。 – Ben

回答

2

首先,15PM不存在。 其次,多年的口罩应该是yyyy,不yy

这个工程:

select TO_DATE('03/Jan/2013 15:51:33','DD/MON/YYYY HH24:MI:SS') from dual; 

如果你想使用AM/PM一定的时间为1和12,这会工作之间:

select TO_DATE('03/Jan/2013 5:51:33PM','DD/MON/YYYY HH:MI:SSAM') from dual; 
+0

不起作用:( – hsuk

+1

什么不行?我的查询?我测试过它们:) –

+0

是的,它工作,谢谢... – hsuk