web-dev-qa-db-fra.com

# 1292 - Valeur de date incorrecte: '0000-00-00'

J'ai fait référence à de nombreuses questions portant le même titre que le mien, mais leur approche et leur problème étant différents, cette question n'est donc pas un doublon.

J'ai une table dans laquelle columnfm_sctrdate est un type date et a la valeur par défaut 0000-00-00.

enter image description here

L'insertion par site Web fonctionne bien, mais lorsque j'essaie d'insérer une valeur quelconque par phpmyadmin, j'ai l'erreur suivante.

enter image description here

Mysql version est 5.7.11. Une dernière chose que notre serveur a récemment mise à jour de mysqlnd 5.0.12 à 5.7.11.

Voici la requête

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)

Nous avons commencé à faire face à ce problème juste après la mise à niveau de mysql

23
urfusion

L'erreur est due au mode SQL qui peut être strict selon la dernière documentation MYSQL 5.7.

Pour plus d'informations, lisez this.

J'espère que ça aide.

39
KuKeC

Vous avez 3 options pour faire votre chemin:
1. Définir une valeur de date comme '1970-01-01'
2. Sélectionnez NULL dans le menu déroulant pour le laisser vide.
3. Sélectionnez CURRENT_TIMESTAMP pour définir la date/heure actuelle comme valeur par défaut.

13
Amit Garg

@ user2823136, vous avez tort.

Après avoir examiné les modifications apportées à MYSQL 5.7, MYSQL cesse de prendre en charge les valeurs de zéros dans date/date/heure.

Ce n'est pas correct d'utiliser des zéros dans date ou datetime, il suffit de mettre null à la place des zéros.

Merci

12
TomerM