Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL Невалидна стойност по подразбиране за времеви печат, когато не е дадена стойност по подразбиране.

Въпреки че @jsnplank е прав, че клеймите за време се третират по различен начин и трябва да помислите за използването на тип данни за дата и час за тези 2 конкретни колони, той обаче не успява да обясни съобщението за грешка.

Съобщението за грешка най-вероятно е резултат от комбинация от начина, по който mysql третира полетата с времеви отпечатъци, когато не е предоставена стойност по подразбиране, и настройките ви за sql режим.

  1. Вие дефинирате и двете колони с времеви отпечатъци като ненулеви, без определена зададена стойност по подразбиране. Това означава, че стойността по подразбиране на 1-ва колона timestamp ще бъде current_timestamp() и също така ще бъде актуализирана до current_timestamp() всеки път, когато записът се промени. Ето защо полето за 1-во времеви отпечатък не генерира съобщение за грешка, без значение кое от двете е първото.

    Въпреки това, стойността по подразбиране на 2-ра колона с времеви печат, която не е нула, ще бъде „0000-00-00 00:00:00“, ако не дефинирате изрично стойност по подразбиране.

    Вижте тази публикация в блога за повече подробности .

  2. Вероятно no_zero_date sql режимът също е активиран на вашия сървър или изрично, или като част от строг sql режим. Този sql режим генерира грешка, ако искате да зададете „0000-00-00 00:00:00“ като стойност по подразбиране или искате да вмъкнете тази стойност в което и да е поле за дата.

Така че можете да използвате тип данни за времеви отпечатък във вашата таблица, но да направите 2-ри нулеви или да предоставите 0 или всяка валидна дата (като епохата) като изрична стойност по подразбиране.

Тъй като маркирате начална и крайна дата с тези полета, използването на дата и час вместо времеви печат като тип данни може да е добра идея.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SELECT TOP грешка

  2. Генерирайте данни за диапазон от дати, включително тези, които не присъстват в данните

  3. Как да деблокирате с mysqladmin flush хостове

  4. PDO:MySQL сървърът е изчезнал

  5. Избиране от една и съща таблица повече от веднъж в една и съща заявка