DateTime64
Позволяет хранить момент времени, который может быть выражен как календарная дата и время суток, с определенной подсекундной точностью.
Размер тика (точность): 10-precision секунд. Допустимый диапазон: [ 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и вставка данных в неё:
- При вставке datetime в виде целого числа оно обрабатывается как соответственно изменённый Unix Timestamp (UTC). 1546300800000(с точностью 3) представляет собой'2019-01-01 00:00:00'UTC. Однако, поскольку колонкаtimestampимеет заданную временную зонуAsia/Istanbul(UTC+3), при выводе в виде строки значение будет показано как'2019-01-01 03:00:00'. Вставка datetime в виде десятичного числа будет обрабатываться аналогично целому числу, за исключением того, что значение перед десятичной точкой — это Unix Timestamp вплоть до секунд, а после десятичной точки будет восприниматься как точность.
- При вставке строкового значения как datetime оно обрабатывается как относящееся к временной зоне колонки. '2019-01-01 00:00:00'будет восприниматься как находящееся в временной зонеAsia/Istanbulи сохранено как1546290000000.
- Фильтрация по значениям DateTime64
В отличие от DateTime, значения DateTime64 не конвертируются автоматически из String.
В отличие от вставки, функция toDateTime64 будет рассматривать все значения как десятичный вариант, поэтому точность должна быть указана после десятичной точки.
- Получение временной зоны для значения типа DateTime64:
- Преобразование временной зоны
См. также
