我想约束添加到表,要求checkout_time
之前现在,继续return_time
和这两个地方,如果存在。如何确定一个时间戳在postgresql中是否在另一个时间戳之前?
什么是PostgreSQL的做到这一点的正确方法?我无法确定哪个日期函数最合适。
我想约束添加到表,要求checkout_time
之前现在,继续return_time
和这两个地方,如果存在。如何确定一个时间戳在postgresql中是否在另一个时间戳之前?
什么是PostgreSQL的做到这一点的正确方法?我无法确定哪个日期函数最合适。
你可以简单地相互比较的时间像任何其他价值。
postgres=# SELECT TIMESTAMP '2011-03-11 10:40:13' < NOW();
?column?
----------
t
(1 row)
所以你可以很容易地比较值。所以用你的表格,你可以添加一个约束。
CREATE TABLE foo(
mydateTIMESTAMP
CHECK (mydate < NOW()));
因为您可以根据需要为表使尽可能多的CHECK
S和添加具有逻辑运算符
除了DrColossos答案将它们组合起来,这里是为“前的另一个人”的检查:
ALTER TABLE foo ADD CONSTRAINT check_time CHECK (checkout_time < return_time)
为什么不使用<
运算符?
mydb=# select '2011-03-01'::timestamp < '2011-03-02'::timestamp;
?column?
----------
t
(1 row)
mydb=# select '2011-03-01'::timestamp < '2011-03-01'::timestamp;
?column?
----------
f
(1 row)