2014-09-05 102 views
2

是否有可能構建一個即時的tsrange並檢查一個值是否在這個範圍內?檢查時間戳是否在tsrange內

我有一個表有兩個字段,session_startsession_end,我想運行一個查詢來檢查傳遞的值是否在這兩個值之間。這些方針的東西(不是有效的SQL!):

SELECT pk FROM sessions WHERE ? IN [session_start, session_end) 

我不確定的文字tsrange以及如何檢查列入確切了Syntex(IN似乎並不work`

注意。 ,無論是傳遞的值以及session_startsession_endTIMESTAMP字段/值。

乾杯!

回答

5

是的,你可以使用一個range constructor爲:

SELECT rangetype(lower, upper[, bounds]); 
-- bounds can be '[]', '[)' (default), '(]', '()' 

-- in your case: 
SELECT pk FROM sessions WHERE ? <@ tsrange(session_start, session_end, '[)'); 

:遏制operator<@的範圍(不IN)。

相關問題