Преобразовать в другой часовой пояс в Postgresql - PullRequest
1 голос
/ 01 мая 2020

Как преобразовать приведенный ниже код в другой часовой пояс, используя postgresql?

SELECT date_trunc('month', CURRENT_DATE);

Приведенный выше код возвращает этот вывод: '2020-05-01 00: 00: 00'

Я хочу преобразовать часовой пояс по умолчанию в 'PST'.

Ответы [ 2 ]

3 голосов
/ 01 мая 2020

Это то, что вы ищете?

select date_trunc('month', current_date) at time zone 'utc' at time zone 'pst'

Выход:

2020-05-01 08:00:00+01
0 голосов
/ 02 мая 2020

Ниже не указано c на этот вопрос. Хотя Postgres поддерживает сокращения часовых поясов (pst, ...), будьте осторожны при их использовании. Они устанавливают sh фиксированные смещения от UT C. Это смещение остается неизменным все время; они не знают об изменениях дневного света. В большинстве случаев гораздо лучше использовать полное имя часового пояса, например, America / Los_Angeles. От Postgres Документация

Сокращение часового пояса, например PST. Такая спецификация просто определяет конкретное смещение от UT C, в отличие от полных имен часовых поясов, которые также могут подразумевать набор правил перехода на летнее время. Распознанные сокращения перечислены в представлении pg_timezone_abbrevs (см. Раздел 51.91). Вы не можете установить параметры конфигурации TimeZone или log_timezone на сокращение часового пояса, но вы можете использовать сокращения во входных значениях даты / времени и с оператором AT TIME ZONE.

...