2017-01-17 6 views
0

Когда я делаю оператор SELECT, который выводит столбец TIMESTAMP WITH TIME ZONE, он не включает часовой пояс на выходе. Он просто выводит дату и время без часового пояса, после преобразования его в мой местный часовой пояс.Получите postgres, чтобы показать все столбцы TIMESTAMP WITH TIME ZONE в UTC

У меня 2 вопроса:

  • Как получить все TIMESTAMP WITH TIME ZONE столбцы всегда отображать часовые пояса на выходе, а не по умолчанию в опуская его?
  • Как получить все столбцы TIMESTAMP WITH TIME ZONE для вывода с часовым поясом по умолчанию UTC? Я знаю, что есть способы сделать это для каждого запроса, но я бы хотел сделать это в каждом случае, когда вам нужно изменить любые запросы. Может быть, серверная установка?
+2

* Когда я делаю ЗЕЬЕСТ, который выводит ' TIMESTAMP WITH TIME ZONE', он не включает часовой пояс на выходе. * - это почти наверняка вызвано вашим клиентом, сам PostgreSQL печатает 'TI MESTAMP WITH TIME ZONE' в часовом поясе, установленном параметром [TimeZone] (https://www.postgresql.org/docs/current/static/runtime-config-client.html#GUC-TIMEZONE) - [f .ex. см.] (http://rextester.com/WQEP6239) – pozs

+0

В нем указано, что по умолчанию используется 'GMT', что я и хочу, но что он переопределяется в' postgresql.conf'. Но у меня нет этого файла. Уверен, что он не использует местный часовой пояс по умолчанию где-то? Единственное, что у меня связано, это '/ usr/share/postgresql/postgresql.conf.sample'. Поэтому не уверен, где он переопределяется и как его менять. Это новая система, так что это не так, как есть старые файлы, которые могут меняться где-то. – user779159

+0

Если вы переходите по ссылке для получения дополнительной информации, описано, что клиенты на основе libpq используют переменную среды 'PGTZ' для выдачи команды« SET TIME ZONE »при подключении. Обычно * настраивается установками по умолчанию для использования собственного часового пояса сервера. – pozs

ответ

1

для одного столбца:

SELECT colname AT TIME ZONE 'UTC' FROM tablename; 

для всех

SET TIMEZONE TO 'UTC'; 

смотри также ALTER ... SET ...

+0

«Устанавливает ли часовой пояс на« utc »изменения только для сеанса или постоянно даже для других сеансов? Я ищу что-то постоянное, а не задавать его каждый раз. – user779159

+0

только текущая сессия, необходимо изменить пользователя для последующих сеансов. https://www.postgresql.org/docs/9.6/static/sql-alteruser.html – Jasen