Ответ опубликован в качестве дополнения к обсуждению комментария по вопросу OP.
Тип данных timestamptz
фактически является меткой времени с часовым поясом, в то время как timestamp
является меткой времени без часового пояса.
Результат, полученный при вычитании этих конкретных дат, как показано ниже, является правильным с разницей в 1 час
SELECT '2018-03-01'::TIMESTAMPTZ - '2018-09-01'::TIMESTAMPTZ;
, потому что 2018-03-01::timestamptz
имеет +01
, тогда как 2018-09-01
имеет +02
.
Убедитесь сами в этом вопросе
SELECT '2018-03-01'::TIMESTAMPTZ, '2018-09-01'::TIMESTAMPTZ
Разница в 1 час Скорее всего обусловлено переходом на летнее время и изменением часового пояса во времени.
ВВ общем, я бы всегда включал в свою систему часовые пояса, чтобы правильно обрабатывать разницу во всем мире и избегать проблем, которые могут возникнуть из-за отсутствия этого.Клиент и сервер могут иметь разные часовые пояса, что может привести к проблемам.