在mysql中选择仅包含开始日期和结束日期的事件

时间:2018-05-31 07:54:52

标签: mysql select

我在Mysql中有一个表,用于存储员工的假期。 该表具有以下结构:

Name | vacation_date_start | vacation_time_start |  vacation_date_end  | vacation_time_end

显然,开始和结束日只能是一天,但也可能不同,例如:

Name | vacation_date_start | vacation_time_start |  vacation_date_end  | vacation_time_end
E1   |  2018-05-15         |      00:00:01       |       23:59:59      |      2018-05-15
E2   |  2018-05-01         |      00:00:01       |      23:59:59       |      2018-05-30
E3   |  2018-05-05         |      00:00:01       |      23:59:59       |      2018-05-20

假设今天是5月15日,我想要一个查询,让我选择今天度假的所有员工。 如果我使用像

这样的查询
SELECT * FROM `events` WHERE `date_start` = '2018-05-15'

我只会看到E1。

我怎样才能看到另外两名员工?

P.S:我无法访问写入此表的软件,因此我无法编辑在DB中写入的方式

2 个答案:

答案 0 :(得分:1)

你可以在

之间使用
SELECT * 
FROM `events` 
WHERE '2018-05-15' BETWEEN vacation_date_start  AND vacation_date_end  

Demo

答案 1 :(得分:0)

试试这个:

SELECT * FROM `events` WHERE `date_start` <= '2018-05-15' AND `date_end` >= '2018-05-15'