Mysql
 sql >> Datenbank >  >> RDS >> Mysql

mysql fügt ein leeres Datum ein, wenn das Datum nicht korrekt ist

Sie können mit dem sql_mode spielen um das Verhalten zu ändern, wie MySQL mit dem ungültigen Datum umgeht.

Gemäß dem MySQL-Handbuch , dies passiert, wenn Sie einen falschen Datumswert einfügen:

Es wird also ein Nullwert eingefügt und Sie erhalten tatsächlich eine Warnung darüber. Sie können das mit show warnings sehen Befehl.

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

Sie können dieses Verhalten ändern, um den ungültigen Wert bei Bedarf zu speichern (MySQL-Handbuch ):

Folgendes sollte beispielsweise funktionieren:

set @@sql_mode='allow_invalid_dates';
insert into TableName (`date`) values ('2015-02-29');
-- 1 row(s) affected

Oder Sie können auch das Verhalten von Daten laden oder einfügen, um den Fehler zu melden:

Beispiel:

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