Мое веб-приложение хранит все временные метки в формате UTC без часовых поясов. У меня есть сценарий shell / psql, который возвращает список последних входов в систему, и я хочу, чтобы этот сценарий отображал время входа в систему в локальном часовом поясе сервера (который может варьироваться в зависимости от того, где находится сервер и при переходе на летнее время).
Чтобы получить интервал, представляющий разницу между часовым поясом моего сервера баз данных и UTC, я в настоящее время использую этот хак:
SELECT age(now() at time zone 'UTC', now());
Это работает, но есть ли более простой способ?
Существует параметр конфигурации сервера под названием «часовой пояс», который возвращает допустимую строку часового пояса, но я не думаю, что возможно получить доступ к этим параметрам в запросе. (Думаю, это отдельный вопрос, но ответ на него решит проблему с часовым поясом.)