2014-10-06 3 views
0

Я пишу php-скрипт для вставки данных в базу данных Oracle, и я получаю ORA-01861: literal не соответствует строкам формата, когда я пытаюсь запустить его , Это как-то связано с датой, и они так рассчитываются, но я не уверен, как и где ее исправить. В таблице log_date - это дата типа. Ниже приведен раздел кода, с которым я работаю, на дату после того, как я уже установил соединение db. Нужно ли входить в определение моего запроса?php ORA-01861: literal не соответствует строке формата

$ticks = $mnemonic->timestamp . "\n"; 
$seconds = ($ticks - 621355968000000000)/10000000; 
$day = date("Y-m-d H:i:s", $seconds); 

$query = "INSERT into TLM_Item(log_date) Values('$day')"; 

$updt = ociparse($conn, $query); 
    if(!$updt){ 
    print "No query \n"; 
    exit; 
    } 

    $r = ociexecute($updt , OCI_COMMIT_ON_SUCCESS); 

ответ

0

Формат даты по умолчанию не установлен ГГГГ-ММ-ДД. К счастью, Oracle поддерживает ключевое слово DATE, чтобы поддерживать даты. Я не использовал его в этом контексте, но он должен работать:

$query = "INSERT into TLM_Item(log_date) Values (DATE '$day')"; 

В качестве альтернативы, можно использовать встроенную функцию to_date():

$query = "INSERT into TLM_Item(log_date) SELECT to_date('$day', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL"; 
+0

Первый вариант не работает, но второй сделал. Комментарии: 1) Typo: во втором варианте «HH: MI: DD» следует сказать «HH: MI: SS» 2) Если вы наберете его, как указано выше, вы получите сообщение об ошибке «ORA-01849: час должно быть от 1 до 12 ". Если вы вместо этого напечатаете «HH24: MI: SS», это сработает. – fcr91

+0

Теперь просто вопрос: если я хочу вставить другие значения в дополнение к дате, просто я использую все выражение «SELECT to_date (« $ day »,« YYYY-MM-DD HH: MI: DD »)) FROM DUAL "в выражении Values ​​() вместе с другими значениями, которые нужно вставить? – fcr91

+0

Кроме того, когда я перехожу в БД для проверки записей, даты отображаются как: 10-JAN-14 без включенного времени. Что заставляет его не появляться? – fcr91

Смежные вопросы