postgresql - 在 postgresql 9.2 的 tztsrange 中使用 now() 作为默认值

标签 postgresql postgresql-9.2

是否可以将 now() 定义为 postgresql 9.2 中引入的 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;

最佳答案

如前所述in the documentation您可以使用相应的函数定义一个范围:

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', '[)')
);

关于postgresql - 在 postgresql 9.2 的 tztsrange 中使用 now() 作为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12477957/

相关文章:

postgresql - 如何在文本 SQL 查询中选择一个词?

ruby-on-rails - unicorn 不会关闭数据库连接

sql - pg_stat_statements 的时间范围是多少

php - 我如何在 PHP 中使用高精度小数

postgresql bgworker SIGTERM 处理程序调用了两次

function - JDBC Postgres 存储函数调用返回 setof 'myType'

ruby-on-rails - 重新启动 mac PG::ConnectionBad 后无法连接到 postgres

postgresql - 是否可以在版本 9.1 和 9.3 之间进行复制

node.js - sequelize 错误模型与另一个模型无关

sql - 按状态和日期计算所有行