在我的表中,我有两个字段:start_date和end_date。我只是想检索当前日期在开始日期和结束日期之间的行。出于某种原因,我不得到这个。我曾经尝试过使用过,但我一直都是空集,即使我知道有记录存在......我不认为我在想这个......任何人都知道怎么做?
答案 0 :(得分:3)
SELECT *
FROM mytable
WHERE SYSDATE() BETWEEN start_date AND end_date
确保您的start_date
和end_date
为DATE
或DATETIME
,而不是VARCHAR
。
答案 1 :(得分:0)
这是另一种不使用BETWEEN的方法:
WHERE @date >= start_date AND @date <= end_date
它应该是等同的。
另请注意,您真正想要的通常是半开的间隔:
WHERE @date >= start_date AND @date < end_date
如果您正在进行分页,则使用半开时间间隔可避免在下一个开头的一页末尾重复值。你无法用BETWEEN语法表达这一点。