MySQL-检查日期是否在某个范围内

时间:2018-10-26 23:16:58

标签: mysql

假设我们有一个这样的表:

(ID, StartDate, EndDate, SubjectID)
(1, '2018-01-01', '2018-02-01', '1')
(2, '2018-03-01', '2018-04-01', '1')
(n, '2018-06-01', '2018-06-15', '1')

对于指定的日期(例如“ 2018-04-04”),我要检查此日期是否在该主题的任何现有范围内。如何在Mysql中做到这一点? 问题在于每个主题的范围数是可变的(每个主题可以有1到n行(范围))。

2 个答案:

答案 0 :(得分:2)

您可以使用mysql中的“大于等于”和“小于等于”过滤器轻松获得所需的输出。 只需将查询放置为

Select SubjectID From your_table
Where StartDate <= '2018-04-04' 
AND EndDate >= '2018-04-04';

应该可以解决问题。 干杯。

答案 1 :(得分:1)

您可以简单地执行以下操作:

SELECT DISTINCT SubjectID FROM table_name WHERE StartDate < '2018-04-04' 
  AND EndDate > '2018-04-04';