小编典典

SQL OVERLAPS运算符问题,如何摆脱它

sql

我希望该日期段从“ 2011-01-28”到“ 2011-02-01”的重叠期从“ 2011-02-01”到“
2011-02-01”(在同一天),但是确实如此不是!

PostgreSQL期望精确的终点匹配不是匹配的…如何摆脱这一点?我希望它将上述情况视为重叠。

SELECT (DATE '2011-01-28', DATE '2011-02-01') OVERLAPS
       (DATE '2011-02-01', DATE '2011-02-01');

返回false,而我希望它返回true。


阅读 251

收藏
2021-04-22

共1个答案

小编典典

一种解决方法,即对您的情况可能有意义,也可能没有意义-将日期转换为时间戳:

SELECT (TIMESTAMP '2011-01-28 00:00:00', TIMESTAMP '2011-02-01  23:59:59') OVERLAPS (TIMESTAMP '2011-02-01 00:00:00', TIMESTAMP '2011-02-01 23:59:59');

从技术上讲,仅转换第一个期间的终点就足够了,至少对于您给出的示例而言。

2021-04-22