Ошибка MySQL Incorrect datetime value: ‘0000-00-00 00:00:00’

Появляется, если поле типа datetime уже содержит подобные нулевые значения при попытке изменить как тип поля (через alter table), так и сами значения в таблице.

Вероятно ошибка возникает, если вы импортировали данные в вашу базу. Скорее всего из-за не совпадения настроек баз данных, а именно отличия режимов, задаваемых в глобальной переменной sql_mode.

Подробнее о режимах можно почитать тут — https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html

Сообщение ‘Incorrect datetime value’ вызывается режимами NO_ZERO_IN_DATE, NO_ZERO_DATE, отключите их и также ERROR_FOR_DIVISION_BY_ZERO. MySQL перестанет обращать внимание на ‘нулевые’ даты.

Для начала проверьте, какие настройки у вас активны:

Удалите значения режимов, связанных с нулевой датой. И задайте новое значение переменной sql_mode.

Помните, что если вы сделаете просто SET, то настройка будет действовать в рамках транзакции. Вам скорее всего потребуется установить значение для сессии или перманентно (глобально):

Но это также временные меры, после перезапуска mysql сервера, настройки вернутся к начальным. Для постоянного изменения нужно добавить значение для sql_mode в файл /etc/mysql/my.cnf:

У меня из всего перечня, к примеру, осталась только директива для группировки.

Написать комментарий

Мало букафф? Читайте есчо !

Получить разницу дат в секундах в MySQL

Июнь 15, 2018 г.

Для начала выберем функцию с подходящей гранулярностью. DATEDIFF явно не подходит, т.к. даёт разницу в кол-ве целых дней. К счастью, есть аналогичная функция - TIMEDIFF, которая вычисляет разницу с точностью до микросекунд. Результат работы TIMEDIFF ...

Читать

Считаем полное число строк в запросе MySQL, ограниченного LIMIT

Ноябрь 2, 2012 г.

О полезном операторе - SQL_CALC_FOUND_ROWS. Это конструкция просто незаменима для организации постраничного вывода каких либо данных. Все время забываю синтаксис, приходится каждый раз искать. Решил записать в блоге, чтобы уж не терять :). Во всех ...

Читать

 

Комментарии к «Ошибка MySQL Incorrect datetime value: ‘0000-00-00 00:00:00’»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: