../../image/benilogo.gifPostgreSQL について


PostgreSQL のfield type interval 型について。
interval 型

  日付と時間の間隔。 とマニュアルには書いてある。

まずは interval 項目を持ったテーブルを作成する。
interval 型の Field の作成
beniya=# create table fen2 ( hhh interval);
CREATE
beniya=# select \d fen2;
         Table "fen2"
 Column |   Type   | Modifiers
--------+----------+-----------
 hhh    | interval |

   こんなふうに interval型のテーブル構造を作成する。。


さて、 interval型には何を格納することが出来るのであろうか?
日付と時間の間隔 だから
beniya=# insert into fen2 values(  current_timestamp - '2004-12-1');
INSERT 22124 1
beniya=# select * from fen2;
           hhh
-------------------------
 22 days 14:39:40.243095
(1 row)
   現在の時間 から 2004/12/1 までの間隔 として
   登録すると こんなふうに格納されている。 



そうなら、時間 も間隔として 登録 可能なんだろうか?
時間 の間隔 は
beniya=# insert into fen2 values( time  '00:00:10' - '00:00:02');
INSERT 22126 1
beniya=# select * from fen2;
           hhh
-------------------------
 22 days 14:39:40.243095
 61 days
 00:00:08
(3 rows)

beniya=# insert into fen2 values( time '00:30:00');
INSERT 22127 1
beniya=# select * from fen2;
           hhh
-------------------------
 22 days 14:39:40.243095
 61 days
 00:00:08
 00:30
(4 rows)

beniya=# insert into fen2 values( interval '00:39:00');
INSERT 22128 1
beniya=# select * from fen2;
           hhh
-------------------------
 22 days 14:39:40.243095
 61 days
 00:00:08
 00:30
 00:39
(5 rows)

   


   こうすると 日にちの間隔 61 days として
   格納されるようです。 





  こんなのも time 時間として '00:30:00' のように
  することも可能であるし また









  最初から Interval 型として '00:39:00' として
  登録可能なようです。







これ 他からみると どんなふうになっているのだろうか?
MS-ACCESS から ODBC 経由でみると
  こんなふうになっている。
  • データー型は テキスト型になっている。

同じく ODBC 接続 で Delphi から見ると、 hhh の構造は
  • VARCHAR 型として認識しているようです。





















目次に戻る

2004/12/18 restart ********* Last Update 2006/05/30 14:30 JST

(C) Y.Kondou,2005,2006 All Rights, Reserved.
その他、お気づきの点がありましたら連絡先はこちらから