admin

mysql:检查日期范围

sql

我们有这样的表结构

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)

我希望查询从表中获取提供的日期范围的表中的记录。在这种情况下,意味着先记录。
如何为此编写查询?


阅读 146

收藏
2021-06-07

共1个答案

admin

首先,请接受@ 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)))
2021-06-07