DateTime64
Позволяет хранить момент времени, который может быть выражен как календарная дата и время суток, с определенной субсекундной точностью.
Размер тика (точность): 10-точность секунд. Допустимый диапазон: [ 0 : 9 ]. Обычно используются - 3 (миллисекунды), 6 (микросекунды), 9 (наносекунды).
Синтаксис:
Внутренне данные хранятся как количество 'тиков' с начала эпохи (1970-01-01 00:00:00 UTC) в формате Int64. Разрешение тика определяется параметром точности. Дополнительно тип DateTime64
может хранить временную зону, которая одинакова для всей колонки, что влияет на то, как значения типа DateTime64
отображаются в текстовом формате и как значения, указанные в виде строк, разбираются ('2020-01-01 05:00:01.000'). Временная зона не сохраняется в строках таблицы (или в результате выборки), но хранится в метаданных колонки. См. детали в DateTime.
Поддерживаемый диапазон значений: [1900-01-01 00:00:00, 2299-12-31 23:59:59.99999999]
Примечание: Точность максимального значения - 8. Если используется максимальная точность 9 цифр (наносекунды), максимальное поддерживаемое значение - 2262-04-11 23:47:16
в UTC.
Примеры
- Создание таблицы с колонкой типа
DateTime64
и вставка данных в нее:
- При вставке даты и времени как целого числа, оно рассматривается как соответствующий масштабированный Unix Timestamp (UTC).
1546300800000
(с точностью 3) представляет собой'2019-01-01 00:00:00'
UTC. Однако, поскольку в колонкеtimestamp
указан часовой поясAsia/Istanbul
(UTC+3), при выводе в виде строки значение будет отображаться как'2019-01-01 03:00:00'
. Вставка даты и времени в виде десятичного числа будет обрабатываться аналогично целому числу, за исключением того, что значение перед десятичной точкой является Unix Timestamp до и включая секунды, а после десятичной точки будет восприниматься как точность. - При вставке строкового значения как даты и времени, оно рассматривается как находящееся в часовом поясе колонки.
'2019-01-01 00:00:00'
будет восприниматься как находящееся в часовом поясеAsia/Istanbul
и сохранено как1546290000000
.
- Фильтрация по значениям
DateTime64
В отличие от DateTime
, значения DateTime64
не конвертируются из String
автоматически.
В отличие от вставки, функция toDateTime64
будет рассматривать все значения как десятичный вариант, поэтому точность должна быть указана после десятичной точки.
- Получение часового пояса для значения типа
DateTime64
:
- Конвертация часового пояса
Смотрите также