Mysql
 sql >> Baza danych >  >> RDS >> Mysql

mysql wstawia pustą datę, jeśli data jest niepoprawna

Możesz grać z sql_mode aby zmienić zachowanie, w jaki MySQL obsługuje nieprawidłową datę.

Zgodnie z podręcznikiem MySQL , dzieje się tak, gdy wstawisz nieprawidłową wartość daty:

Tak więc wstawiana jest wartość zero i faktycznie otrzymujesz ostrzeżenie o tym. Możesz to zobaczyć za pomocą show warnings polecenie.

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

Możesz zmienić to zachowanie, aby przechowywać nieprawidłową wartość, jeśli potrzebujesz (Podręcznik MySQL ):

Na przykład powinno działać:

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

Możesz też zmienić zachowanie ładuj dane lub wstaw, aby zgłosić błąd:

Przykład:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Replikacja i wyzwalacze MySQL

  2. Określanie schematu w Pandas to_sql

  3. BIGINT wydajność mysql w porównaniu do INT

  4. SELECT w MySQL nie działa

  5. Znajdź brakujące przerwy w sekwencji mysql