Я пытаюсь создать таблицу с date
подал и установите его значение по умолчанию now()
дата MySQL против значения по умолчанию даты и времени
К моему удивлению, он не работает. Я получаю
Error # 1067 - Недопустимое значение по умолчанию для 'АБВ'
НО. Если я попытаюсь указать это поле вместо datetime
, оно принимает значение now()
в качестве значения по умолчанию!
Тот же результат, если я попытаюсь использовать значение CURRENT_TIMESTAMP()
в качестве значения по умолчанию. datetime
принимает, но date
нет.
Теперь у меня есть два вопроса: 1) Почему? 2) Как заставить его работать?
Прежде чем вы ответите: здесь был найден аналогичный вопрос: Create a column 'Date' with default value current datetime MYSQL Но он принял ответ, который не говорит много. Он цитирует только документацию MySQL, подтверждающую, что это так, но не говорит, почему это так. И он не говорит, как обойти это, он просто предлагает использовать другой тип.
EDIT: похоже, ответ на вопрос 2 заключается в том, что это невозможно. Но это заставляет меня задаться вопросом еще больше, почему. Почему это делает разницу между датой и датой
же, как ответ rahautos'S. вы можете поместить now() в поле даты в инструкции insert или update, и оно работает. Но спасибо, что сказали, что это невозможно сделать. Я как бы ожидал, что это основано на документации, я просто не могу в это поверить. Я все еще хотел бы знать, почему корыто. –