Mysql日期查询来查找当前是否在两个日期之内?
问题描述:
在我的表中,我有两个字段:start_date和end_date。我只是试图检索当前日期在开始日期和结束日期之间的行。出于某种原因,我是而不是得到这个。我尝试过使用之间,但我仍然得到空集,即使我知道有记录存在......我不认为我在清楚地考虑这些......任何人都知道如何做到这一点?Mysql日期查询来查找当前是否在两个日期之内?
答
SELECT *
FROM mytable
WHERE SYSDATE() BETWEEN start_date AND end_date
确保您start_date
和end_date
是DATE
或DATETIME
,不VARCHAR
。
答
这里的另一种方式做到这一点,而不使用BETWEEN:
WHERE @date >= start_date AND @date <= end_date
这应该是等价的,但。
另外请注意,您真的要经常的是一个半开区间:
WHERE @date >= start_date AND @date < end_date
如果您分页,使用半开区间可避免在一个页面在年底重复值下一个的开始。你不能用BETWEEN语法表达这一点。
你能否发表一些应该返回的记录,但他们不是? – Quassnoi 2010-01-19 15:45:47