A TIMESTAMP
не хранит и не использует часовой пояс, как описано в документации .При разборе он может иметь часовой пояс, который конвертируется из при сохранении.
Отметка времени представляет собой абсолютную точку во времени, не зависящую от часового пояса или соглашения, например, перехода на летнее время.
И, более конкретно,
Временная метка - это просто смещение от 1970-01-01 00:00:00 UTC, при условии, что это точно 60 секунд в минуту.Временные секунды не представлены как часть сохраненной временной метки.
При запросе CURRENT_TIMESTAMP()
он также явно показывает, что он в UTC, имея нулевое смещение часового пояса.Так что это временная метка в UTC, основанная на этом.
Возможно, возникла проблема с его использованием, поскольку он ничего не сохраняет в UTC и не заботится о дополнительных секундах.Спецификация гласит:
Дополнительные секунды можно наблюдать только через функции, которые измеряют реальное время.В этих функциях можно пропустить или повторить метку времени, когда есть високосная секунда.
Так что, если эти високосные секунды необходимы, может потребоваться использовать другой тип данных в определенныхчасовой пояс для обработки високосных секунд.
Также объясняется преобразование:
Если ваш ввод содержит значения, которые используют «: 60» в поле секунд для представления високосной секунды, эта секунда не сохраняется при преобразованиик значению метки времени.Вместо этого это значение интерпретируется как метка времени с «: 00» в поле секунд следующей минуты.