假设我有一张表:
ID (int)
Date1 (date)
Date2 (date)
如何查询x
大于或等于Date1
但小于或等于Date2
的行?
我目前有这个where子句:
(
Date1 <= DATE(NOW()) --just an example
AND
Date2 >= DATE(NOW()) --just an example
)
但根本不会返回任何行,但是当我尝试其中任何一行时:
Date1 <= DATE(NOW()) --just an example
或
Date2 >= DATE(NOW()) --just an example
它有效,我需要的是两个比较运算符,但在一行中,我认为我的逻辑类似于BETWEEN ... AND ...
,Date1
和Date2
位于BETWEEN
1}}和AND
运算符
考试情景:
ID Date1 Date2
1 10-16-2016 10-30-2016
当我跑步时,
SELECT
*
FROM
`mytable`
WHERE
DATE('10/10/16') BETWEEN Date1 AND Date2;
OR
SELECT
*
FROM
`mytable`
WHERE
(
DATE('10/10/16') >= Date1
AND
DATE('10/10/16') <= Date2
);
它不返回任何行,但当DATE('10/10/16') >= Date1
和DATE('10/10/16') <= Date2
单独运行时,会返回结果。
答案 0 :(得分:0)
试试这个:
select *
from my_table
where x >= Date1
and x <= Date1
我从上一个查询中删除了括号,并在我的情况下工作。如果您仍然没有得到结果,那么您的数据可能没有任何匹配的行。