Преобразование из GMT в UTC - PullRequest
0 голосов
/ 07 апреля 2011

В таблице все записи хранятся во времени по Гринвичу.Но через мое приложение я хочу отображать только те записи, которые попадают в часовой пояс UTC.то есть, на веб-странице я хочу отображать только записи, относящиеся к часовому поясу UTC.

Преобразование из GMT в UTC.Или запросите базу данных, чтобы получить все записи о часовом поясе UTC.

Я очень благодарен за быстрый ответ.

Я использую базу данных Oracle и приложение на PHP.

Ответы [ 2 ]

1 голос
/ 27 мая 2011

С Среднее время по Гринвичу в Википедии:

Возможно, [GMT] совпадает с универсальным всемирным временем (UTC).

Что касается преобразования, вы можете добавлять / удалять интервалы, но, насколько мне известно, Oracle поддерживает временные метки с / без часовых поясов:

select now() at time zone 'UTC' as utc,
       now() at time zone 'EST' as est,
       now() at time zone 'Europe/London' as london;

Последний пример, если он будет работать, позволит вамне беспокойтесь о летнем времени и т. д.

0 голосов
/ 27 мая 2011

Я предполагаю, что ваше время хранится как значения DATE, что все значения хранятся как время UTC, и что интересующий вас часовой пояс является постоянным.Чтобы преобразовать UTC в заданный часовой пояс, вы добавляете смещение часового пояса.В этом случае, поскольку интересующий часовой пояс имеет отрицательное смещение, необходимо добавить то же отрицательное число.Таким образом, может быть полезным следующее:

SELECT DATE_FIELD + INTERVAL '-5' HOUR
  FROM SOME_TABLE
  WHERE <whatever>

FWIW, есть некоторые места, где преобразование в местное время использует смещение не на целый час - например, Аделаида, Австралия использует смещение +9,5 часаиз GMT и Катманду Непал использует +5,75 часа.

Делитесь и наслаждайтесь.

РЕДАКТИРОВАТЬ: Учитывая данные, как вы их описали, лучше всего просто добавить вчасовой пояс сеанса, как показано ниже:

SELECT your_gmt_timestamp_field AT TIME ZONE SESSIONTIMEZONE
  FROM your_table

Попробуйте и посмотрите, поможет ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...