2016-05-18 15 views
15

Ich habe viele Fragen gestellt, die den gleichen Titel wie meinen haben, aber einen anderen Ansatz und ein anderes Problem haben, daher ist diese Frage nicht doppelt.# 1292 - Falscher Datumswert: '0000-00-00'

Ich habe eine Tabelle, in der columnfm_sctrdatedate Typ und hat den Standardwert 0000-00-00.

enter image description here

Insertion von Website funktioniert gut, aber wenn ich versuche, durch phpmyadmin einen beliebigen Wert einfügen dann bekam ich folgende Fehlermeldung.

enter image description here

Mysql Version ist 5.7.11. Eine weitere Sache ist in letzter Zeit unser Server wurde von mysqlnd 5.0.12 auf 5.7.11 aktualisiert.

ist die Abfrage

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) 

Wir haben dieses Problem mit Blick gerade nach dem Upgrade von mysql

+0

von phpmyadmin für das Datumsfeld geben Sie Datum ein oder wählen Sie aus der Standard-Datumsauswahl? –

+0

Ich verlasse Datumsauswahl wie es ist. Weder Datum ändern noch Datum von Hand eingeben – urfusion

+0

Nicht die Lösung, aber ich empfehle, 'NULL' anstelle von' 0000-00-00' zu verwenden, da dies kein gültiges Datum ist. – Peter

Antwort

21

Der Fehler ist wegen des SQL-Modus, der Strict-Modus gemäß neuester MYSQL 5.7 Dokumentation sein kann.

Für weitere Informationen lesen this.

Hoffnung, es hilft.

11

@ user2823136, irrt.

Nach Überprüfung der Änderungen von MYSQL 5.7 stoppt MYSQL die Unterstützung von Nullen in date/datetime.

Es ist nicht korrekt, Nullen im Datum oder in Datetime zu verwenden, setzen Sie einfach Null anstelle von Nullen.

Dank

+2

Ja, Mysql standardmäßig keine Nullwerte verwenden. Aber wie @KuKec in einem Kommentar durch einen Link erwähnt, können wir den strikten Modus deaktivieren und Nullwerte verwenden. Also, wenn Sie diese Information auch in Ihrer Antwort hinzufügen, habe ich kein Problem, das zu akzeptieren. – urfusion

7

Sie haben 3 Möglichkeiten Ihren Weg zu machen:
1. Definieren Sie einen Datumswert wie ‚1970-01-01‘
2. Wählen Sie NULL aus der Dropdown es leer zu halten.
3. Wählen Sie CURRENT_TIMESTAMP, um das aktuelle Datum als Standardwert festzulegen.

Verwandte Themen