Spec-Zone.ru › MySQL 8.4

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

Значения дат с двухзначными годами являются неоднозначными, так как век неизвестен. Такие значения необходимо интерпретировать в четырёхзначный вид, поскольку 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-8.4-en/two-digit-years.html

Spec-Zone.ru

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