2016-05-18 37 views
15

Ho risposto a molte domande che hanno il titolo uguale al mio ma hanno un approccio diverso e un problema diverso, quindi questa domanda non è duplicata.# 1292 - Valore data errato: '0000-00-00'

Ho una tabella in cui columnfm_sctrdate è il tipo date e ha il valore predefinito 0000-00-00.

enter image description here

inserimento dal sito sta funzionando benissimo ma quando provo ad inserire qualsiasi valore da phpmyadmin poi ho avuto seguente errore.

enter image description here

Mysql versione è 5.7.11. Ancora una volta il nostro server è stato aggiornato da mysqlnd 5.0.12 a 5.7.11.

Ecco la query

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) 

Abbiamo iniziato di fronte a questo problema solo dopo l'aggiornamento della mysql

+0

da phpmyadmin per il campo data si sta digitando la data o si seleziona dalla selezione data predefinita? –

+0

Sto lasciando il raccoglitore di date così com'è. Né cambiare la data né inserire la data manualmente – urfusion

+0

Non la soluzione, ma suggerisco di usare 'NULL' invece di' 0000-00-00' poiché questa non è una data valida. – Peter

risposta

21

l'errore è a causa della modalità di SQL che può essere la modalità rigorosa come da documentazione più recente MYSQL 5.7.

Per ulteriori informazioni leggere this.

Speranza che aiuta.

11

@ user2823136, è sbagliato.

Dopo aver esaminato le modifiche di MYSQL 5.7, MYSQL smette di supportare il valore degli zeri in data/data/ora.

Non è corretto utilizzare gli zeri in data o in data/ora, basta inserire null anziché zero.

Grazie

+2

Sì, Mysql interrompe l'utilizzo di valori zero per impostazione predefinita. Ma come @KuKec menzionato nel commento da un link possiamo uscire dalla modalità rigorosa e possiamo usare valori zero. Quindi, se aggiungete anche queste informazioni nella risposta, non ho alcun problema ad accettarlo. – urfusion

7

avete 3 opzioni per rendere il vostro modo:
1. Definire un valore di data come '1970-01-01'
2. Selezionare NULL dal menu a discesa per tenerlo vuoto.
3. Selezionare CURRENT_TIMESTAMP per impostare il datetime corrente come valore predefinito.