sql >> Database teknologi >  >> RDS >> Mysql

mysql indsætter en tom dato, hvis datoen ikke er korrekt

Du kan spille med sql_mode for at ændre adfærden, hvordan MySQL håndterer den ugyldige dato.

Ifølge MySQL-manualen , dette sker, når du indsætter en forkert datoværdi:

Så der indsættes en nulværdi, og det får du faktisk en advarsel om. Du kan se det med show warnings kommando.

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

Du kan ændre denne adfærd for at gemme den ugyldige værdi, hvis du har brug for det (MySQL-manual ):

For eksempel burde følgende virke:

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

Eller du kan også ændre adfærden for indlæs data eller indsæt for at rapportere fejlen:

Eksempel:

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



  1. MySQL og Check Constraints

  2. Opret tabel med PHP og udfyld fra MySQL

  3. Sådan opretter du en pivot-forespørgsel i sql-server uden aggregeret funktion

  4. Selvstudium til SQL Server-tabelopdeling og -partitioner