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.