簡體   English   中英

如何確定postgresql中的一個時間戳是否先於另一個時間戳?

[英]How to determine if one timestamp precedes another in postgresql?

我想在表中添加約束,要求checkout_time繼續return_time並且這兩者都要在現在之前(如果存在)。

在PostgreSQL中執行此操作的正確方法是什么? 我無法確定哪個日期函數最合適。

您可以像其他任何值一樣簡單地比較時間。

postgres=# SELECT TIMESTAMP '2011-03-11 10:40:13' < NOW();
 ?column? 
----------
 t
(1 row)

因此,您可以非常輕松地比較值。 因此,使用您的表,您可以添加CHECK約束。

CREATE TABLE foo(
    mydateTIMESTAMP
    CHECK (mydate < NOW()));

您可以根據需要為表格生成盡可能多的CHECK ,並將它們與邏輯運算符相結合

除了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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM