Mysql 选择在已知日期范围内的行
我知道这一点:Mysql 选择在已知日期范围内的行,mysql,Mysql,我知道这一点: $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 :E
$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 |
|--------|---------------|-------------|
感谢您的帮助。如果希望开始日期和结束日期$StartDate和$EndDate都包含在RAT_DateStart和RAT_DateEnd指定的范围内,则需要重新组织WHERE子句: 示例数据的输出:
RAT_Id RAT_DateStart RAT_DateEnd
1 2019-04-10 00:00:00 2019-09-24 00:00:00
也许尼克的解决方案就是你想要的,但下面是一个更典型的请求
SELECT c.olumns
, y.ou
, a.ctually
, w.ant
FROM ___Rates
WHERE :StartDate < RAT_DateEnd
AND :EndDate >= RAT_DateStart;
您希望日期$StartDate和$EndDate都包含在RAT_DateStart和RAT_DateEnd指定的范围内?@Nick,实际上查询没有返回任何行。它应该返回我的第一个,因为已知的日期范围是我在表中第一行的范围。
SELECT c.olumns
, y.ou
, a.ctually
, w.ant
FROM ___Rates
WHERE :StartDate < RAT_DateEnd
AND :EndDate >= RAT_DateStart;