Mysql日期查询来查找当前是否在两个日期之内?

问题描述:

在我的表中,我有两个字段:start_date和end_date。我只是试图检索当前日期在开始日期和结束日期之间的行。出于某种原因,我是而不是得到这个。我尝试过使用之间,但我仍然得到空集,即使我知道有记录存在......我不认为我在清楚地考虑这些......任何人都知道如何做到这一点?Mysql日期查询来查找当前是否在两个日期之内?

+1

你能否发表一些应该返回的记录,但他们不是? – Quassnoi 2010-01-19 15:45:47

SELECT * 
FROM mytable 
WHERE SYSDATE() BETWEEN start_date AND end_date 

确保您start_dateend_dateDATEDATETIME,不VARCHAR

这里的另一种方式做到这一点,而不使用BETWEEN:

WHERE @date >= start_date AND @date <= end_date 

这应该是等价的,但。

另外请注意,您真的要经常的是一个半开区间:

WHERE @date >= start_date AND @date < end_date 

如果您分页,使用半开区间可避免在一个页面在年底重复值下一个的开始。你不能用BETWEEN语法表达这一点。