我在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中写入的方式
答案 0 :(得分:1)
你可以在
之间使用SELECT *
FROM `events`
WHERE '2018-05-15' BETWEEN vacation_date_start AND vacation_date_end
答案 1 :(得分:0)
试试这个:
SELECT * FROM `events` WHERE `date_start` <= '2018-05-15' AND `date_end` >= '2018-05-15'