Skip to main content
Skip to main content

DateTime64

Позволяет хранить момент времени, который может быть представлен как календарная дата и время, с заданной суб-секундной точностью.

Размер тика (точность, precision): 10-precision секунд, где precision - целочисленный параметр. Возможные значения: [ 0 : 9 ]. Обычно используются - 3 (миллисекунды)(default), 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.99999999] (Примечание: Точность максимального значения составляет 8).

Примеры

  1. Создание таблицы со столбцом типа DateTime64 и вставка данных в неё:
  • При вставке даты-времени как числа (аналогично ‘Unix timestamp’), время трактуется как UTC. Unix timestamp 1546300800 в часовом поясе Europe/London (UTC+0) представляет время '2019-01-01 00:00:00'. Однако, столбец timestamp имеет тип DateTime('Europe/Moscow (UTC+3)'), так что при выводе в виде строки время отобразится как 2019-01-01 03:00:00.
  • При вставке даты-времени в виде строки, время трактуется соответственно часовому поясу установленному для колонки. '2019-01-01 00:00:00' трактуется как время по Москве (и в базу сохраняется '2018-12-31 21:00:00' в виде Unix Timestamp).
  1. Фильтрация по значениям даты и времени

В отличие от типа DateTime, DateTime64 не конвертируется из строк автоматически.

  1. Получение часового пояса для значения типа DateTime64:
  1. Конвертация часовых поясов

See Also