Разница между типами данных TIMESTAMP и TIMESTAMPTZ в PostgreSQL заключается в том, как они обрабатывают информацию о часовых поясах. 14
TIMESTAMP (без часового пояса) хранит дату и время, но не учитывает часовые пояса. 14 Значение TIMESTAMP представляет конкретный момент времени, но не учитывает разные часовые пояса по всему миру. 1 Если изменить часовой пояс сервера, то сохранённые значения TIMESTAMP не будут автоматически корректироваться. 1
TIMESTAMPTZ (с часовым поясом) хранит дату и время вместе с информацией о часовом поясе. 14 Внутренне PostgreSQL хранит значения TIMESTAMPTZ в UTC (Всемирное координированное время). 1 Когда вставляется значение TIMESTAMP с определённым часовым поясом, PostgreSQL преобразует его в UTC для хранения. 1
Таким образом, TIMESTAMP подходит для случаев, когда нужно хранить дату и время без учёта часовых поясов, а TIMESTAMPTZ — когда необходимо работать с данными в разных часовых поясах или обеспечить постоянное представление независимо от местоположения сервера. 1