oracle 错误:ORA-01861:文字与格式字符串不匹配
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/14136738/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Error : ORA-01861: literal does not match format string
提问by hsuk
Can someone find the bug on the mentioned code please :
有人可以在提到的代码中找到错误吗:
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 has field type DATE
FL_DATETIME 的字段类型为DATE
This is throwing error:
这是抛出错误:
ORA-01861: literal does not match format string
Server side code:
服务器端代码:
$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'
)
");
回答by Florin Ghita
First, 15PM does not exist.
Second, years mask should be yyyy
, not yy
首先,15PM 不存在。二、岁月面具应该是yyyy
,不是yy
this works:
这有效:
select TO_DATE('03/Jan/2013 15:51:33','DD/MON/YYYY HH24:MI:SS') from dual;
If you want to use AM/PM be sure the hour is between 1 and 12 and this would work:
如果您想使用 AM/PM,请确保小时在 1 到 12 之间,这将起作用:
select TO_DATE('03/Jan/2013 5:51:33PM','DD/MON/YYYY HH:MI:SSAM') from dual;