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