web-dev-qa-db-ja.com

#1292-不正な日付値: '0000-00-00'

私は私のタイトルと同じタイトルを持つ多くの質問を参照しましたが、それらは異なるアプローチと異なる問題を持っているため、この質問は重複していません。

columnfm_sctrdatedate型であり、デフォルト値が0000-00-00であるテーブルがあります。

enter image description here

Webサイトによる挿入は正常に機能していますが、phpmyadminによって値を挿入しようとすると、次のエラーが発生しました。

enter image description here

Mysqlバージョンは5.7.11です。最近、サーバーが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のアップグレード直後にこの問題に直面し始めました

23
urfusion

このエラーは、最新のMYSQL 5.7のドキュメントによると、厳格モードになる可能性があるSQLモードが原因です。

詳細については、 this。 を参照してください。

それが役に立てば幸い。

39
KuKeC

あなたの方法を作るための3つのオプションがあります:
1。 「1970-01-01」などの日付値を定義します
2。空白のままにするには、ドロップダウンからNULLを選択します。
3。現在の日時をデフォルト値として設定するには、CURRENT_TIMESTAMPを選択します。

13
Amit Garg

@ user2823136、あなたは間違っています。

MYSQL 5.7の変更を確認した後、MYSQLはdate/datetimeのゼロ値のサポートを停止します。

日付または日時にゼロを使用するのは正しくありません。ゼロの代わりにヌルを入れてください。

ありがとう

12
TomerM