ORA-01843:在oracle中插入日期时不是有效月份

Ato*_*ico 3 oracle date insert

我正在尝试在oracle数据库中插入一行,当我尝试使用日期时,我在标题中有错误.我的约会对象是DD/MM/YYYY HH:MM:SS(例子25/01/2013 12:07:19)

编辑以便更好地解释:我有一个Android应用程序,并希望通过PHP在oracle数据库中插入一行.
在Php我有:

$sqlString = sprintf("INSERT INTO GUASTI (%s, %s, %s, %s, %s, %s) 
                      VALUES ('%s', '%s', '%s', '%s', '%s', '%s')"
                      ,'guasto','tipo','data', 'localita', 'indirizzo_id', 'utente_id',
                       $array['guasto'], $array['tipo'], $array['data'], $array['localita'], $idUtenti, $idIndirizzo);
Run Code Online (Sandbox Code Playgroud)

这里$array['data']25/01/2013 12:07:19

ps我知道那里有安全问题,但现在不是问题.

Mat*_*teo 6

MM是一个月.使用MI分钟.

你有

HH:MM:SS
Run Code Online (Sandbox Code Playgroud)

每次分钟大于12时都会触发错误,因为您要告诉Oracle将它们解释为几个月.

您也使用HH而不是am/pm(在您刚刚使用的示例中12).如果您使用24格式使用HH24

DD/MM/YYYY HH24:MI:SS
Run Code Online (Sandbox Code Playgroud)

或者如果你想要12小时格式

DD/MM/YYYY HH:MI:SSAM
Run Code Online (Sandbox Code Playgroud)

然后

02/01/2013 07:42:00am
Run Code Online (Sandbox Code Playgroud)

编辑

您正在使用默认格式MM/DD/YYYY(美国标准)插入日期:25不是有效月份.你可以使用这个TO_DATE功能

'TO_DATE(' . $array['data'] . ', DD/MM/YYYY HH24:MI:SS)'
Run Code Online (Sandbox Code Playgroud)