Spec-Zone.ru › MySQL 5.7

11.2.10 Двузначные годы в датах

Значения дат с двузначными годами являются неоднозначными, так как век неизвестен. Такие значения должны быть интерпретированы в 4-значный формат, поскольку MySQL хранит годы во внутреннем представлении с четырьмя цифрами.

Для типов DATETIME, DATE и TIMESTAMP MySQL интерпретирует даты, указанные с неоднозначными значениями года, используя следующие правила:

  • Значения года в диапазоне 00-69 преобразуются в 2000-2069.

  • Значения года в диапазоне 70-99 преобразуются в 1970-1999.

Для YEAR правила такие же, с этим исключением: числовое значение 00, вставленное в YEAR, приводит к результату 0000, а не к 2000. Чтобы указать ноль для YEAR и интерпретировать его как 2000, укажите его как строку '0' или '00'.

Обратите внимание, что эти правила являются лишь эвристикой, которая предлагает разумные предположения о значении ваших значений данных. Если правила, используемые MySQL, не создают требуемых значений, вы должны предоставить однозначный ввод, содержащий значения года с четырьмя цифрами.

MySQL корректно сортирует значения YEAR с двузначными годами.

Некоторые функции, такие как MIN() и MAX(), преобразуют YEAR в число. Это означает, что значение с двузначным годом не работает должным образом с этими функциями. В этом случае решение состоит в преобразовании YEAR в формат года с четырьмя цифрами.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/two-digit-years.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API