Типы данныхСредний
TIMESTAMPTZ
Тип данных для хранения даты и времени с часовым поясом. Рекомендуется вместо TIMESTAMP.
Синтаксис
column TIMESTAMPTZ DEFAULT NOW() column TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
Объяснение
TIMESTAMPTZ хранит момент времени в UTC, при чтении конвертирует в текущий часовой пояс сессии.
TIMESTAMP без TZ — «наивное» время без информации о зоне. Проблема при работе с пользователями в разных TZ.
Правило: всегда используй TIMESTAMPTZ. Исключение — когда важно время «как написано», без привязки к зоне.
Пример
-- Сравнение типов SELECT NOW()::TIMESTAMP, -- локальное время без TZ NOW()::TIMESTAMPTZ, -- UTC + TZ NOW() AT TIME ZONE 'Europe/Moscow'; -- перевод в московское время
Связанные термины
Анекдоты по теме
— Что такое UNLOGGED TABLE? — Таблица без WAL (Write-Ahead Log). — Быстрее обычной? — В 5–10 раз на INSERT. — В чём подвох? — При сбое данные теряются. Не реплицируется. — Когда использовать? — Кэш, временные данные, staging для ETL.
— Зачем нормализовать базу данных? — Чтобы не хранить одно и то же в разных местах. — А денормализовать? — Чтобы читать быстро, не делая JOIN. — Значит, нужно найти баланс? — Именно. Это называется «проектирование схемы».
NoSQL-разработчик стучится в дом к SQL-разработчику. — У тебя схемы нет? — Нет, зато у тебя каждый документ — сам себе сеньор.