Обзор

Типы полей даты и времени

Типы полей даты и времени включают следующие варианты:

  • Дата и время (с часовым поясом) — дата и время преобразуются в единое время UTC (всемирное координированное время), а при необходимости выполняется преобразование часового пояса;
  • Дата и время (без часового пояса) — хранит дату и время без информации о часовом поясе;
  • Дата (без времени) — хранит только дату, без компонента времени;
  • Время — хранит только время, без компонента даты;
  • Временная метка Unix — хранится как временная метка Unix, обычно представляющая количество секунд с 1 января 1970 года.

Примеры типов полей, связанных с датой:

Тип поляПример значенияОписание
Дата и время (с часовым поясом)2024-08-24T07:30:00.000ZДата и время преобразуются в единое время UTC (всемирное координированное время)
Дата и время (без часового пояса)2024-08-24 15:30:00Дата и время без часового пояса, записываются только дата и время
Дата (без времени)2024-08-24Хранится только информация о дате, без времени
Время15:30:00Хранится только информация о времени, без даты
Временная метка Unix1724437800Количество секунд, прошедших с 00:00:00 1 января 1970 года по времени UTC

Сопоставление источников данных

Таблица сопоставления NocoBase, MySQL и PostgreSQL:

Тип поляNocoBaseMySQLPostgreSQL
Дата и время (с часовым поясом)Datetime with timezoneTIMESTAMP
DATETIME
TIMESTAMP WITH TIME ZONE
Дата и время (без часового пояса)Datetime without timezoneDATETIMETIMESTAMP WITHOUT TIME ZONE
Дата (без времени)DateDATEDATE
ВремяTimeTIMETIME WITHOUT TIME ZONE
Временная метка UnixUnix timestampINTEGER
BIGINT
INTEGER
BIGINT
Время (с часовым поясом)--TIME WITH TIME ZONE

Примечание:

  • Диапазон данных MySQL TIMESTAMP находится между временем UTC 1970-01-01 00:00:01 ~ 2038-01-19 03:14:07, при выходе за пределы этого диапазона рекомендуется использовать DATETIME или BIGINT для хранения временной метки Unix.

Процесс хранения даты и времени

С часовым поясом

Включает日期时间(不含时区) и Unix 时间戳

20240824191933

Примечание:

  • Для поддержки более широкого диапазона значений в базе данных MySQL для полей даты и времени NocoBase (с часовым поясом) используется DATETIME. Хранимое значение даты преобразуется с учётом переменной окружения TZ на стороне сервера. Если переменная окружения TZ изменится, сохранённое значение даты и времени также изменится.
  • Между временем UTC и местным временем существует разница в часовых поясах, поэтому прямое отображение исходного значения UTC может ввести пользователя в заблуждение.

Без часового пояса

20240824185600

UTC

UTC (всемирное координированное время, Coordinated Universal Time) — мировой стандарт времени, используемый для координации и унификации времени в разных частях мира. Это высокоточный стандарт времени, основанный на атомных часах и синхронизированный с вращением Земли.

Между временем UTC и местным временем существует разница в часовых поясах, поэтому прямое отображение исходного значения UTC может ввести пользователя в заблуждение, например:

Часовой поясДата и время
UTC2024-08-24T07:30:00.000Z
Восточная зона (UTC+8)2024-08-24 15:30:00
Восточная зона (UTC+5)2024-08-24 12:30:00
Западная зона (UTC-5)2024-08-24 02:30:00
Британское время (UTC+0)2024-08-24 07:30:00
Центральное время (UTC-6)2024-08-23 01:30:00

Все приведённые значения обозначают один и тот же момент времени и отличаются только часовыми поясами.