Как вставить значение NULL на дату - PullRequest
0 голосов
/ 26 марта 2020

Мне нужно иметь возможность установить нулевое значение в БД Oracle, если пользователь не выберет дату.

$createdon = date('m/d/Y', strtotime($_POST['createdon'])); 
INSERT INTO purchase (CREATEDON) VALUES(to_date('$createdon','mm/dd/yy'))

Я могу вставить дату, если пользователь выбирает дату, но если пользователь сохранит дату в базе данных, это «01.01.1970». Кроме того, если я не использую тег «to_date», я не могу вставить запись в базу данных.

Любые предложения о том, что мне делать и как?

Спасибо.

1 Ответ

1 голос
/ 26 марта 2020

TO_DATE в порядке, потому что - если вы передаете строку (которая представляет значение даты), это предпочтительный способ, чтобы ВЫ могли контролировать ее. Потому что, если вы передадите «01. 02.20», то какой? 01 день или месяц? 02 день, год, ... месяц? Кто знает. Не зависит от по умолчанию . Итак, если вы скажете to_date('01.02.20', 'rr.mm.dd'), то каждый (включая Oracle) знает, что делать.

По состоянию на 01/01/1970: если вы вставите null, но все равно увидите это значение в столбце, оно означает, что столбец

  • имеет значение по умолчанию
  • триггер базы данных вставил его

Проверьте оба этих параметра в этой таблице.

...