# 1292 - Неправильное значение даты: '0000-00-00'

Я ссылался на многие вопросы, которые имеют то же название, что и мои, но у них другой подход и другая проблема, поэтому этот вопрос не является дубликатом.

У меня есть таблица, в которой column fm_sctrdate является типом date и имеет значение по умолчанию 0000-00-00.

enter image description here

Вставка с сайта работает нормально, но когда я пытаюсь вставить любое значение с помощью phpmyadmin я получаю следующую ошибку.

enter image description here

Mysql версия 5.7.11. В последнее время наш сервер был mysqlnd 5.0.12 с mysqlnd 5.0.12 до 5.7.11.

Вот запрос

INSERT INTO 'iavlif_fmp_clientquote' ('jm_cqid', 'fmsq_id', 'fmsg_id', 
'fm_sctrdate', 'fm_sctrtime', 'fm_sctbaggage_weight',     
'fm_sctfreight_weight', 'fm_sctpassenger', 'fm_sctinfant', 
'fm_sctinfant_details', 'fm_sctinfant_dob', 'fmtp_id', 'fmtpi_id',
'jmcnt_id', 'fm_name', 'fm_company', 'fm_email', 'fm_phone', 'fmts_id',
'jmts_id', 'fm_pax_nbr', 'fm_hours_nbr', 'fmqt_id', 'fmtr_id',
'fm_sctnotes', 'fm_locdepart', 'fm_locarrive', 'fm_sctconsignment_weight',
'fm_sctconsignment_dimensions', 'fm_sctconsignment_desc', 'fm_sctdangerous',
'fm_scturgent', 'fm_sctspecial_instructions', 'fm_sctquote_type',
'fm_sctwork_type', 'fm_sctreoccuring', 'fm_sctaccommodation', 'fm_sctcar',
'fm_recdate', 'fm_recenddate', 'fm_recfrequency', 'fm_rectime',    
'fm_medical', 'fm_medical_details', 'fm_user_ip', 'fm_dang_details',
'fm_sctsubstance', 'fm_sctpurchase_number', 'fm_role_id', 'fm_myrole_id',
'jm_myrole_id', 'fm_sctwork_point', 'fm_locdepartarrive', 'fm_sctnbr', 
'fm_dateCreated', 'fm_cc', 'fm_gl', 'fm_timeCreated', 'jm_qtid', 'jmtp_id',
'jmtpi_id', 'jmsg_id', 'jms_id', 'jmsq_id', 'fms_id', 'fmcq_id') VALUES
(NULL, '1', '1', '0000-00-00', '1', '1', '1', 'sdfasd', 'No',
'sdafdsafdsaf', 'dsfas', 'sdfasd', 'dsafds', '0', 'asdfds', 'sdfasd',
'sdfads', 'sdaf', 'sdaf', 'sdaf', '0', '0', '0', '1sadfasdsda', 'sdfadsf',
'as', 'as', 'as', 'asas', 'asd', 'No', 'No', 'adsfsd', 'eqwrqew', 'qewrqew',
'No', 'No', 'No', '0000-00-00', '0000-00-00', 'ewqr', 'qewrw', 'No', 'eqwr',
'ewqr', 'qewr', '', '', '', '', '', '', '', '0', '0000-00-00', '', '',
'00:00:00.000000', '', '', '', '', '', '', '', NULL)

Мы начали сталкиваться с этой проблемой сразу после обновления mysql

Ответ 1

Ошибка возникает из-за режима sql, который может быть строгим в соответствии с последней документацией MYSQL 5.7.

Для получения дополнительной информации прочтите this.

Надеюсь, что это поможет.

Ответ 2

@user2823136, вы ошибаетесь.

После просмотра изменений MYSQL 5.7 MYSQL перестает поддерживать нулевые значения в дате/дате.

Неправильно использовать нули в дате или в дате, просто поместите нуль вместо нулей.

Спасибо

Ответ 3

У вас есть 3 варианта, чтобы сделать свой путь:
1. Определите значение даты, например "1970-01-01", 2. Выберите NULL из раскрывающегося списка, чтобы сохранить его пустым.
3. Выберите CURRENT_TIMESTAMP, чтобы установить текущее время datetime как значение по умолчанию.