Вместо того, чтобы всегда писать:Postgres, возвращающая DateTime со смещением часового пояса
select my_column at time zone 'UTC' at time zone 'Europe/Paris' from my_table;
Я предпочитаю делать:
select dtz(my_column, 'Europe/Paris') from my_table;
UTC
в рамках всей системы (часовой пояс сервера), и может даже быть жестко закодированным в dtz()
.
Может ли кто-нибудь поделиться эффективной реализацией такой функции?
Редактировать
select my_column at time zone 'UTC' at time zone 'Europe/Paris' from my_table;
Может быть сокращен очень и очень немного, как это:
select timezone('UTC', my_column) at time zone 'Europe/Paris' from my_table;
Спасибо за ваш ответ. Я бы использовал временную метку с часовым поясом, если мне удастся переместить Hibernate 5 в мое приложение (да, так или иначе), потому что ImprovedNamingStrategy ушла, и мне это нужно. Клиент в моем случае - это приложение Spring Boot, работающее на том же сервере, что и база данных. Для быстрого запроса я использую «в часовом поясе» в SQL-запросах, и я надеялся уменьшить объемность, используя функцию, описанную в моих вопросах. Но я согласен с вами, использование timestamp с часовым поясом было бы лучшим способом решить мою проблему. – yglodt
Да, нет «эффективного» решения больше, чем подробный ... лучшая функция, основанная на одном, будет всего лишь одним слоем, как я указываю. –