[pgsql-jp: 32266] Re: timestamp型
SUGIMURA Takashi 杉村 貴士
sugimura @ yasudakei.org
2004年 2月 14日 (土) 02:21:17 JST
杉村です。
> timestamp型でテーブルを作成し、年月日 時分秒 のデータを追加します。
> すると、下記をみてもらうとわかるのですが
> 秒の後ろに「+09」というのがついています。
> これはなんなのでしょうか?又つかないようにできるのでしょうか?
>
timezone ですね。日本時間です。
以前は付いていたような気がするのですが、
手元の 7.4.1 では再現しません。
hoge=# create table t_test (hizuke timestamp);
CREATE TABLE
hoge=# insert into t_test values('2004-02-13 21:01:23');
INSERT 17205 1
hoge=# select * from t_test;
hizuke
---------------------
2004-02-13 21:01:23
(1 row)
+09 が付かないのはなんでだろうということで調べてみると、
without time zone がデフォルトになっているんですね。
hoge=# \d t_test
Table "public.t_test"
Column | Type | Modifiers
--------+-----------------------------+-----------
hizuke | timestamp without time zone |
そこで、 with time zone で作り直してみました。
hoge=# drop table t_test ;
DROP TABLE
hoge=# create table t_test (hizuke timestamp with time zone);
CREATE TABLE
hoge=# insert into t_test values('2004-02-13 21:01:23');
INSERT 17208 1
hoge=# select * from t_test;
hizuke
------------------------
2004-02-13 21:01:23+09
(1 row)
結論としては、to_char() 関数を使えば良いのではないかと思います。
hoge=# select to_char(hizuke, 'YYYY-MM-DD HH24:MI:SS') from t_test;
to_char
---------------------
2004-02-13 21:01:23
(1 row)
長くなりましたね。
---
杉村 貴士 <sugimura @ YasudaKei.org> http://YasudaKei.org/
pgsql-jp メーリングリストの案内