Time
Тип данных 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).
Ограничение значений (saturation).
Компонента времени суток ограничивается диапазоном [-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. Проверка полученного типа: