我想約束添加到表,要求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)