sql_mode
で遊ぶことができます MySQLが無効な日付を処理する動作を変更します。
MySQLマニュアル によると 、これは、間違った日付値を挿入した場合に発生します:
したがって、ゼロ値が挿入され、実際にそれに関する警告が表示されます。 show warnings
でそれを確認できます コマンド。
insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected
show warnings
-- Warning 1264 Out of range value for column 'date' at row 1
必要に応じて、この動作を変更して無効な値を保存できます(MySQLマニュアル ):
たとえば、次のように機能するはずです。
set @@sql_mode='allow_invalid_dates';
insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected
または、データの読み込みの動作を変更することもできます。 a> または挿入してエラーを報告します:
例:
set @@sql_mode='traditional';
insert into TableName (`date`) values ('2015-02-29');
Error Code: 1292. Incorrect date value: '2015-02-29' for column 'date' at row 1