Chr*_* P. 2 postgresql timestamp date-range
是否有可能在运行中构建tsrange并检查值是否在其中?
我有一个有两个字段的表,session_start和session_end我要运行检查,如果通过数据为这两个值之间的查询.沿着这些方向的东西(不是有效的SQL!):
SELECT pk FROM sessions WHERE ? IN [session_start, session_end)
Run Code Online (Sandbox Code Playgroud)
我不确定文字的确切syntex tsrange以及如何检查包含(IN似乎不起作用).
请注意,传递的值以及session_start和session_end都是TIMESTAMP字段/值.
干杯!
是的,您可以使用范围构造函数:
SELECT rangetype(lower, upper[, bounds]);
-- bounds can be '[]', '[)' (default), '(]', '()'
-- in your case:
SELECT pk FROM sessions WHERE ? <@ tsrange(session_start, session_end, '[)');
Run Code Online (Sandbox Code Playgroud)
注:遏制运营商是<@为范围(不IN).
| 归档时间: |
|
| 查看次数: |
2264 次 |
| 最近记录: |