Můžete hrát s sql_mode
změnit chování, jakým MySQL zpracovává neplatné datum.
Podle příručky MySQL , k tomu dojde, když vložíte nesprávnou hodnotu data:
Vloží se tedy nulová hodnota a ve skutečnosti na to dostanete varování. Můžete to vidět pomocí show warnings
příkaz.
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
Toto chování můžete změnit a uložit neplatnou hodnotu, pokud to potřebujete (Příručka MySQL ):
Například by mělo fungovat následující:
set @@sql_mode='allow_invalid_dates';
insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected
Nebo můžete také změnit chování načítání dat nebo vložte pro ohlášení chyby:
Příklad:
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