我知道这一点:
$StartDate = '2019-05-01';
$EndDate = '2019-05-30';
如果我想选择包含$date
和RAT_DateStart
范围内的RAT_DateEnd
的行,那会是什么错误?
实际上我有这个查询吗?
SELECT * FROM ___Rates
WHERE (RAT_DateStart BETWEEN :StartDate AND :EndDate)
OR (RAT_DateEnd BETWEEN :StartDate AND :EndDate);
我的桌子如下:
|--------|---------------|-------------|
| RAT_Id | RAT_DateStart | RAT_DateEnd |
|--------|---------------|-------------|
| 1 | 2019-04-10 | 2019-09-24 |
| 2 | 2019-02-03 | 2019-04-15 |
|--------|---------------|-------------|
感谢您的帮助。
答案 0 :(得分:1)
也许Nick的解决方案就是您所追求的,但是以下是更典型的要求...
SELECT c.olumns
, y.ou
, a.ctually
, w.ant
FROM ___Rates
WHERE :StartDate < RAT_DateEnd
AND :EndDate >= RAT_DateStart;
答案 1 :(得分:0)
如果您希望开始日期和结束日期($StartDate
和$EndDate
都包含在RAT_DateStart
和RAT_DateEnd
指定的范围内,则需要重新组织{ {1}}子句:
WHERE
输出(用于您的示例数据):
SELECT * FROM ___Rates
WHERE (:StartDate BETWEEN RAT_DateStart AND RAT_DateEnd)
AND (:EndDate BETWEEN RAT_DateStart AND RAT_DateEnd);