Можете да играете с 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
Или можете също да промените поведението на зареждане на данни или вмъкнете, за да съобщите за грешката:
Пример:
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