我有一个包含以下结构的表
leave_id int(10) No
user_id int(10) No
leavetype_id int(15) No
fromdt date No
todt date No
no_of_days varchar(10) No
status enum('0', '1', '2', '3') No
modifier varchar(35) No
modifiedby varchar(25) No
description varchar(100)
包含这样的数据
leave_id 194
user_id 2
leavetype_id 2
fromdt 2011-04-26
todt 2011-05-09
no_of_days 9
status 3
modifier
modifiedby
description some description
现在我需要根据请假日期进行搜索。例如,我希望在2011-04-27和2011-05-08之间看到用户使用的叶子(例如user_id = 2)。如您所见,根据上面公布的结果,user_id 2从2011-04-26到2011-05-09休假。而2011-04-27和2011-05-08的给定日期介于其间。
我尝试过以下事情
答案 0 :(得分:0)
这似乎是你所追求的:
SELECT *
FROM yourtable
WHERE fromdt < '2011-04-27'
AND todt > '2011-05-08'
答案 1 :(得分:0)
以下内容将显示与'2011-04-27'
和'2011-05-08'
之间的时间段至少相隔1天的任何休假:
SELECT *
FROM yourtable
WHERE fromdt <= '2011-05-08'
AND todt >= '2011-04-27'
这将显示跨越整个句号'2011-04-27'
到'2011-05-08'
的树叶:
SELECT *
FROM yourtable
WHERE fromdt <= '2011-04-27'
AND todt >= '2011-05-08'