次のテーブルがあるとします。
postgres=# create table foo (datetimes timestamptz);
CREATE TABLE
postgres=# \d+ foo
Table "public.foo"
Column | Type | Modifiers | Storage | Description
-----------+--------------------------+-----------+---------+-------------
datetimes | timestamp with time zone | | plain |
Has OIDs: no
それで、それにいくつかの値を挿入しましょう...
postgres=# insert into foo values
('2012-12-12'), --This is the value I want to catch for.
(null),
('2012-12-12 12:12:12'),
('2012-12-12 12:12');
INSERT 0 4
そして、ここに私たちが持っているものがあります:
postgres=# select * from foo ;
datetimes
------------------------
2012-12-12 00:00:00+00
2012-12-12 12:12:12+00
2012-12-12 12:12:00+00
(4 rows)
2012-12-12
理想的には、入力に TIME が指定されていない場合のデフォルトのタイムスタンプ値を設定したいと思います。デフォルト00:00:00
の を設定したいと思います15:45:10
。
つまり、私の結果は次のようになります。
postgres=# select * from foo ;
datetimes
------------------------
2012-12-12 15:45:10+00 --This one gets the default time.
2012-12-12 12:12:12+00
2012-12-12 12:12:00+00
(4 rows)
postgres 8.4でこれを行う方法がよくわかりません。マニュアルの日時セクションまたは列のデフォルト値に関するセクションには何も見つかりません。