我希望该日期段从“ 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。
一种解决方法,即对您的情况可能有意义,也可能没有意义-将日期转换为时间戳:
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');
从技术上讲,仅转换第一个期间的终点就足够了,至少对于您给出的示例而言。