PostgreSQL 中没有时间的间隔类型
Interval type without time in PostgreSQL
我在应用程序端使用 PostgreSQL 类型 INTERVAL
和 java.time.Period
类型。
我想要的是限制插入除年月日以外的所有字段的INTERVAL
列。
我知道 INTERVAL type definition 中有 [ fields ]
部分,但我只能在其中放入 YEAR TO MONTH
:
CREATE TABLE test_interval (
col1 INTERVAL YEAR TO MONTH -- only years and month allowed
)
我需要:
-- not a real SQL
CREATE TABLE test_interval (
col1 INTERVAL YEAR TO MONTH -- only years, month and days allowed
)
有什么解决方法吗?
试试这个:
create table test_interval
(col1 interval
,constraint col1_check check(date_trunc('day', col1) = col1)
)
我在应用程序端使用 PostgreSQL 类型 INTERVAL
和 java.time.Period
类型。
我想要的是限制插入除年月日以外的所有字段的INTERVAL
列。
我知道 INTERVAL type definition 中有 [ fields ]
部分,但我只能在其中放入 YEAR TO MONTH
:
CREATE TABLE test_interval (
col1 INTERVAL YEAR TO MONTH -- only years and month allowed
)
我需要:
-- not a real SQL
CREATE TABLE test_interval (
col1 INTERVAL YEAR TO MONTH -- only years, month and days allowed
)
有什么解决方法吗?
试试这个:
create table test_interval
(col1 interval
,constraint col1_check check(date_trunc('day', col1) = col1)
)