[pgsql-jp: 39979] Re: 8.4 で timestamp の time zone 変換が

jiro okazaki okazaki @ focus-s.com
2009年 8月 26日 (水) 14:23:55 JST


はじめまして、岡崎と申します。

1888年1月1日からとのことなので多分 1752年9月のグレゴリオ暦カレンダと同じ
かなぁと思い、調べてみたところこういうのが見つかりました。

http://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E6%A8%99%E6%BA%96%E6%99%82#.E6.AD.B4.E5.8F.B2

> この日本の標準時に関する部分は1888年
<http://ja.wikipedia.org/wiki/1888%E5%B9%B4>(明治21年)1 月1日
<http://ja.wikipedia.org/wiki/1%E6%9C%881%E6%97%A5>から適用された。
> かつては、兵庫県
<http://ja.wikipedia.org/wiki/%E5%85%B5%E5%BA%AB%E7%9C%8C>明石市
<http://ja.wikipedia.org/wiki/%E6%98%8E%E7%9F%B3%E5%B8%82>を通る東経135
度の子午線における地方平均太陽時
<http://ja.wikipedia.org/wiki/%E5%9C%B0%E6%96%B9%E5%B9%B3%E5%9D%87%E5%A4%AA
%E9%99%BD%E6%99%82>と定義されていた。

と言うことなのでこの法令で時間が飛んだんじゃないでしょうか。



IT さんは書きました:
> はじめまして。中上と申します。
>
> 【環境】
>  PostgreSQL8.4
>  Windows Vista SP1 日本語版 32bit
>
>
> timestamp without time zone から timestamp with time zone への変換で
> 以下の現象が発生しております。
>
> 【現象】
>  1887-12-31 14:59:59 以前の timestamp without time zone を
>   AT TIME ZONE 'UTC' で timestamp with time zone に変換すると、
>  1888-01-01 00:18:58+09:18:59 のように、
>  時間帯指定が +09 ではなく、+09:18:59 となる。
>
> 【再現SQL】
> postgres=# SELECT '1887-12-31 14:59:59'::timestamp without time zone
> AT TIME ZONE 'UTC';
>            timezone
> ------------------------------
>  1888-01-01 00:18:58+09:18:59
> (1 行)
>
>
> 上記日時以降は正常に+09 に変換できます。
>
> postgres=# SELECT '1887-12-31 15:00:00'::timestamp without time zone
> AT TIME ZONE 'UTC';
>         timezone
> ------------------------
>  1888-01-01 00:00:00+09
> (1 行)
>
>
> PostgreSQL8.3.7では、私が試した限りどんな時刻でも +09 に変換出来ますので、
> 8.4のバグかもしれないと思っているのですが、いかがでしょうか?
>
> またPostgreSQL8.4で +09 に変換する方法がありましたらご教授下さい。
>
>
>
>
>   


-- 
 株式会社 フォーカスシステムズ
 okazaki @ focus-s.com
 岡崎 次朗 (おかざき じろう)




pgsql-jp メーリングリストの案内