我们有这样的表结构
id | startDay | startMonth | startYear | endDay | endMonth | endYear 1 | 22 | 12 | 2012 | 25 | 1 | 2013
现在,我们有了另一个日期范围,例如startDate,startMonth,startYear(即 25 | 12 | 2012) 和endDay,endMonth,endYear(即 10 | 1 | 2013) 。
我希望查询从表中获取提供的日期范围的表中的记录。在这种情况下,意味着先记录。 如何为此编写查询?
首先,请接受@ MarcB的建议。但是,如果您没有时间更改表,则也可以使用以下查询。
SELECT * FROM tableName WHERE ('2012-12-25' BETWEEN DATE(CONCAT_WS('-', startYear, startMonth, startDay)) AND DATE(CONCAT_WS('-', endYear, endMonth, endDay))) AND ('2013-01-10' BETWEEN DATE(CONCAT_WS('-', startYear, startMonth, startDay)) AND DATE(CONCAT_WS('-', endYear, endMonth, endDay)))