Косяки с отменой летнего времени

Поиск
Список
Период
Сортировка
От Alexander M. Pravkin
Тема Косяки с отменой летнего времени
Дата
Msg-id 20110908144045.GC3409@dyatel.antar.bryansk.ru
обсуждение исходный текст
Список pgsql-ru-general
Обновил сегодня системную zoneinfo (FreeBSD 8.2), привязал к ней же
postgresql (в 8.4.8 ещё не внесли tzdata 2011i).

Напоролся на интересный косяк:

fduch@~=# SHOW timezone;
   TimeZone
---------------
 Europe/Moscow

fduch@~=# SET datestyle TO German ;
SET
fduch@~=# SELECT date_trunc('month', '01.09.2011 00:00:00 MSK'::timestamptz);
       date_trunc
-------------------------
 01.09.2011 00:00:00 MSK

fduch@~=# SELECT date_trunc('month', '01.09.2011 00:00:00 MSK'::timestamptz) = '01.09.2011'::timestamptz;
 ?column?
----------
 t

fduch@~=# SELECT date_trunc('month', '01.09.2011 00:00:00 MSK'::timestamptz) = '01.09.2011 00:00:00 MSK'::timestamptz;
 ?column?
----------
 f

fduch@~=# select
    extract(epoch from date_trunc('month', '01.09.2011 00:00:00 MSK'::timestamptz)),
    extract(epoch from '01.09.2011'::timestamptz),
    extract(epoch from '01.09.2011 00:00:00 MSK'::timestamptz);
 date_part  | date_part  | date_part
------------+------------+------------
 1314820800 | 1314820800 | 1314824400


Всё это связано с тем, что наша нынешняя TZ называется MSK и имеет +0400
без DST, а у PG прописано:

fduch@~=# SELECT * from pg_timezone_abbrevs where abbrev in ('MSK','MSD');
 abbrev | utc_offset | is_dst
--------+------------+--------
 MSD    | 04:00:00   | t
 MSK    | 03:00:00   | f

То есть output у него "правильный", а input из расчёта что MSK -- это
GMT+3

Вопрос вытекает сам собой: и что теперь делать-то? Может, кто-то уже
сталкивался?


--
Alexander M. Pravkin

В списке pgsql-ru-general по дате отправления:

Предыдущее
От: Nick Kostirya
Дата:
Сообщение: Потерял заметку...
Следующее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: Rule'ы и ссылки на другие таблицы