Sobes.tech
Junior

Tworzysz tabelę audit_logs, w której musisz przechowywać datę i dokładny czas z strefą czasową. Jaki jest najbardziej odpowiedni typ danych? czas z strefą czasową interwał znacznik czasu z strefą czasową data znacznik czasu bez strefy czasowej

sobes.tech AI

Odpowiedź od AI

Для хранения даты и точного времени с часовым поясом в таблице audit_logs наиболее подходит тип данных timestamp with time zone. Он сохраняет дату и время с учётом часового пояса, что важно для корректного учёта времени в разных регионах.

  • time with time zone хранит только время суток с часовым поясом, без даты.
  • interval — это интервал времени, не подходит для отметки конкретного момента.
  • date хранит только дату без времени.
  • timestamp without time zone хранит дату и время, но без информации о часовом поясе, что может привести к ошибкам при работе с разными часовыми поясами.

Пример в PostgreSQL:

CREATE TABLE audit_logs (
    id SERIAL PRIMARY KEY,
    event_time TIMESTAMP WITH TIME ZONE NOT NULL,
    event_description TEXT
);