Время
Тип данных Time
представляет время с часовыми, минутными и секундными компонентами. Он не зависит от какой-либо календарной даты и подходит для значений, которым не нужны компоненты дня, месяца и года.
Синтаксис:
Диапазон текстового представления: [-999:59:59, 999:59:59].
Разрешение: 1 секунда.
Подробности реализации
Представление и Производительность.
Тип данных Time
внутренне хранит подписанное 32-битное целое число, которое кодирует секунды. Значения типов Time
и DateTime
имеют одинаковый размер в байтах и, таким образом, сопоставимую производительность.
Нормализация.
При разборе строк в Time
временные компоненты нормализуются и не проверяются. Например, 25:70:70
истолковывается как 26:11:10
.
Отрицательные значения.
Поддерживаются и сохраняются начальные минусовые знаки. Отрицательные значения обычно возникают из арифметических операций над значениями Time
. Для типа Time
отрицательные входные данные сохраняются как для текстовых (например, '-01:02:03'
), так и для числовых входных данных (например, -3723
).
Насыщение.
Компонент времени суток ограничен диапазоном [-999:59:59, 999:59:59]. Значения с часами за пределами 999 (или ниже -999) представляются и круговыми превращаются через текст как 999:59:59
(или -999:59:59
).
Часовые пояса.
Time
не поддерживает часовые пояса, т.е. значения Time
трактуются без регионального контекста. Указание часового пояса для Time
в качестве параметра типа или при создании значения вызывает ошибку. Аналогично, попытки применить или изменить часовой пояс для колонок Time
не поддерживаются и приводят к ошибке. Значения Time
не переосмысливаются без предупреждения под разными часовыми поясами.
Примеры
1. Создание таблицы с колонкой типа Time
и вставка данных в нее:
2. Фильтрация по значениям Time
Значения колонки Time
могут быть отфильтрованы с использованием строкового значения в предикате WHERE
. Оно будет автоматически преобразовано в Time
:
3. Проверка результирующего типа: