5

是否可以定义为postgresql 9.2 中引入now()的数据类型的起始值?tztsrange我试着用这个

ALTER TABLE test_table ALTER COLUMN tstz_range SET DEFAULT '[now,infinity]'::tstzrange;

但是在这样的表达式now()中,通过更改表来评估当前时间戳,尽管默认值总是相同的:

'["2012-09-18 15:00:47.334196+02",infinity]'::tstzrange;
4

1 回答 1

10

文档中所述,您可以使用相应的功能定义范围:

SELECT tstzrange(now(), 'infinity', '[)');
┌────────────────────────────────────────────┐
│                 tstzrange                  │
├────────────────────────────────────────────┤
│ ["2012-09-18 15:33:50.186351+00",infinity) │
└────────────────────────────────────────────┘

因此,您可以使用以下函数轻松创建默认值:

CREATE TABLE plop (
  id serial PRIMARY KEY, 
  some_range tstzrange DEFAULT tstzrange(now(), 'infinity', '[)')
);
于 2012-09-18T15:35:28.967 回答