Мы размещаем наши собственные датчики потока (это похоже на этот калибр USGS: http://waterdata.usgs.gov/usa/nwis/uv?site_no=03539600), поэтому мы, байдарки, знаем, достаточно ли воды для заливки потока и не тратить время и газ, чтобы проехать там. Мы надеемся установить несколько из них в юго-восточной части whitewater, которая охватывает восточные и центральные часовые пояса.Часовой пояс со временем перехода на летнее время в PostgreSQL
Я сохраняю время, когда запись вставляется с использованием значения по умолчанию current_time для записи. Я хотел бы позже отобразить данные, используя формат MM/DD/YYYY HH12:MI AM TZ
, который выводит значения, такие как 03/12/2012 01:00 AM CDT
. Я также хотел бы, чтобы на выходе были заметны изменения в дневном свете, поэтому последняя часть предыдущего предложения изменилась бы между CST и CDT, когда мы «продвигаемся вперед» и «отступаем». Это изменение произошло 11/11/2012 в этом году, и я включил даты по обе стороны от этой линии DST ниже. Я использую ноутбук для Windows 7 для разработки, и мы позже будем развертывать его в ящике Unix. Postgres, по-видимому, обнаружил, что мой компьютер Windows установлен в восточный часовой пояс США. Я пытаюсь сделать это с полем «timestamp without time zone» и поле «timestamp with time zone», но не может заставить его работать.
Я пытался использовать «в часовом поясе» в своих настройках, и каждая вещь работает, пока не наступит время для отображения часового пояса. Фактический час является частью отметки времени, правильно вычитаемой на час, когда я прошу время в CDT. Но на выходе отображается EDT.
SELECT reading_time as raw,
reading_time at time zone 'CDT',
to_char(reading_time at time zone 'CDT',
'MM/DD/YYYY HH12:MI AM TZ') as formatted_time
FROM readings2;
"2012-04-29 17:59:35.65";"2012-04-29 18:59:35.65-04";"04/29/2012 06:59 PM EDT"
"2012-04-29 17:59:40.19";"2012-04-29 18:59:40.19-04";"04/29/2012 06:59 PM EDT"
"2012-03-10 00:00:00";"2012-03-10 00:00:00-05";"03/10/2012 12:00 AM EST"
"2012-03-11 00:00:00";"2012-03-11 00:00:00-05";"03/11/2012 12:00 AM EST"
"2012-03-12 00:00:00";"2012-03-12 01:00:00-04";"03/12/2012 01:00 AM EDT"
Я хранение часового пояса, что каждый из наших датчиков расположен в характере меняющегося поля в отдельную таблицу. Я считал, что просто добавляю это значение к концу вывода времени, но я хочу, чтобы он менялся от CST до CDT без моего вмешательства.
Благодарим за помощь.
Было бы полезно, если бы вы могли опубликовать вывод '' 'd d ''' s '' psql' здесь. – vyegorov