Лыцарь пичальнава образа - PostgreSQL 9.1.4 [entries|archive|friends|userinfo]
silly_sad

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

PostgreSQL 9.1.4 [Sep. 28th, 2012|12:24 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
hike=# SELECT now();
now
-------------------------------
2012-09-28 12:20:33.548429+04
(1 row)

hike=# SELECT 'epoch'::timestamptz;
timestamptz
------------------------
1970-01-01 03:00:00+03
(1 row)

Вот такой совершенно безобидный прикол (будучи уже хез каким по счёту) не может не тревожить -- что-то там происходит неладное внутри (если оно возвращает мне эпоху в отфонарной таймзоне) откуда оно взяло эту таймзону? зачем? может быть это уже продукт гипернагромождения кода?
LinkLeave a comment

Comments:
From:[info]tzirechnoy.livejournal.com
Date:September 28th, 2012 - 11:25 am
(Link)
Почему так уж в отфонарной? Скорее всего, это таймзона процэсса-сервера. Хотя, возможно, что таймзона процэсса, сделавшэго initdb. И, скорее всего, она настраивается ещё и где-то в параметрах pgsql. И, скорее всего, это московская таймзона.
Насколько правильна московская таймзона в твоём линуксе на первое января 1970-го года по гринвичу -- это ужэ другой вопрос.
From:[info]silly_sad
Date:September 28th, 2012 - 01:20 pm
(Link)
> Скорее всего, это таймзона процэсса-сервера. Хотя, возможно, что таймзона процэсса, сделавшэго initdb.

обе гипотезы также применимы и к now() (которая вернула +4)
более того я знаю что они равны (но это уже к делу не относится)
я ему сказал (у него у сервера таймзона +4)
какой ему западлячий смысл возвращать мне эпоху в другой таймзоне?
(откуда он взял это +3 продолжает оставаться неизвестным)

есть подозрение (это СПЕЦИАЛЬНО запрограммировано возвращать эпоху в ЗИМНЕЙ таймзоне), но эта гипотеза только подтверждает отсутвие мозга у автора сего -- безсмысленность сего действа слишком очевидна (она даже ошибку не создаёт).
From:[info]tzirechnoy.livejournal.com
Date:September 28th, 2012 - 02:26 pm
(Link)
У него таймзона, скорее всего, 'Europe/Moscow'. Оно летом +3, а зимой +4. И то не каждой зимой, там большой список.
А, вот, вообще весело:
"All timezone-aware dates and times are stored internally in UTC. They are converted to local time in the zone specified by the timezone configuration parameter before being displayed to the client."

Так что это поведение в документацыи написано. Но жыть можно, я думаю.
From:[info]morruth.livejournal.com
Date:September 28th, 2012 - 07:44 pm
(Link)
Скорее он имее тв виду, что в 1970м году летнее время ещё не ввели
From:[info]silly_sad
Date:September 28th, 2012 - 07:46 pm
(Link)
эпоха это 00 по гринвичу.
насрать на лето и зиму.
вопрос почему таймзона now отличается от таймзоны epoch
понимаете?
не почему моя таймзона отличается от москвы или гринвича и не почему у меня сегодня +4 и сколько должно быть на самом деле -- а почему оно вернуло мне две константы в РАЗНЫХ таймзонах неважно каких.
From:[info]tzirechnoy.livejournal.com
Date:September 28th, 2012 - 11:28 am
(Link)
Кстати, юниксовые таймстэмпы и таймзоны -- тожэ вещь в себе. Например, оно отнюдь не количество секунд UTC -- в UTC есть leap seconds для синхронизацыи с UT1, в unix timestamp они не учитываются. И это такжэ не UT1 -- оно границы секунд проводит по UTC, потому до полусекунды отличается. Более того, некоторое время вообще непредставимо в unix timestamp (те самые leap seconds, когда добавляются).
В общем, пора мигрировать куда-то в MJD.
From:[info]tzirechnoy.livejournal.com
Date:September 28th, 2012 - 11:30 am
(Link)
И, кстати, по памяти -- таймзона правильная. Мы жывём сейчас по летнему времени (2 часа поясного+декретное 1 ч+летнее 1ч), а в январе 1970-го было явно зимнее (на 1 час меньшэ).
From:[info]silly_sad
Date:September 28th, 2012 - 01:22 pm
(Link)
о я понял, это та же гипотеза что и моя.
но прикол то ровно в том что эпоха это абсолютный момент времени и нет разницы в какой таймзоне его выразить
From:[info]tzirechnoy.livejournal.com
Date:September 28th, 2012 - 02:27 pm
(Link)
Ну, ты попросил с таймзоной -- вот оно тебе с локальной таймзоной его и отобразило.
From:[info]silly_sad
Date:September 28th, 2012 - 02:42 pm
(Link)
моя локальная таймзона другая
From:[info]tzirechnoy.livejournal.com
Date:September 28th, 2012 - 02:49 pm
(Link)
Во-первых, рассматривается, конечно, не твоя а сервера. А во-вторых -- ты уверен, что у сервера другая?
From:[info]silly_sad
Date:September 28th, 2012 - 04:07 pm
(Link)
блять. я и сервер это одно и тоже лицо.
From:[info]silly_sad
Date:September 28th, 2012 - 04:08 pm
(Link)
а говнопостгес как ты знаешь НЕ РАЗЛИЧАЕТ таймзону клиента и сервера. она у него ОДНА на двоих.