Заполняю БД. Выдало ошибку

143
19 декабря 2021, 05:40

Ошибка следующая:

ERROR 1264: 1264: Out of range value for column 'birthday' at row 1 SQL Statement: UPDATE booksdb.authors SET name='Лев Толстой', birthday=1828, id='6' WHERE id='6'

Поле birthday типа year. Если я указываю год<=1900 - мне показывает вышеуказанную ошибку. С чем это связано?

Answer 1

MySQL извлекает и выводит величины YEAR в формате YYYY. Диапазон возможных значений - от 1901 до 2155.

Величины типа YEAR могут быть заданы в различных форматах:

  • Как четырехзначная строка в интервале значений от 1901 до 2155.
  • Как четырехзначное число в интервале значений от 1901 до 2155.
  • Как двухзначная строка в интервале значений от 00 до 99.
  • Величины в интервалах от 00 до 69 и от 70 до 99 при этом преобразуются в величины YEAR в интервалах от 2000 до 2069 и от 1970 до 1999 соответственно.
  • Как двухзначное число в интервале значений от 1 до 99.
  • Величины в интервалах от 1 до 69 и от 70 до 99 при этом преобразуются в величины YEAR в интервалах от 2001 до 2069 и от 1970 до 1999 соответственно.

Необходимо принять во внимание, что интервалы для двухзначных чисел и двухзначных строк несколько различаются, так как нельзя указать ноль непосредственно как число и интерпретировать его как 2000. Необходимо задать его как строку 0 или 00, или же оно будет интерпретировано как 0000. Как результат выполнения функции, возвращающей величину, приемлемую в контексте типа данных YEAR (такой как NOW()). Недопустимые величины YEAR преобразуются в 0000.

READ ALSO
Защита каталогов и т.п htaccess

Защита каталогов и т.п htaccess

Подскажите, как грамотно составить htaccess, чтобы был тотальный запрет на показ содержимого сайта (каталоги, вложенные каталоги, файлы и тп

68
Неправильно работает drag &amp; drop в vanile js

Неправильно работает drag & drop в vanile js

Некорректно работает drag & drop, помогите найти ошибку или переписать уже существующий кодХотел реализовать это: внутри контейнера генирируются...

101