我有一个Mysql问题。 例如,我有这种数据库:
表:date_check
NAME | DATE_TIME
Luis | 14/10/2014 13:37:00
Charlie | 12/10/2014 12:25:00
表:时间表
NAME | DATE_START | DATE_END
Luis | 02/10/2014 | 11/10/2014
Charlie | 08/10/2014 | 17/10/2014
==========================
然后我希望结果如下:
NAME | DATE_TIME | result
Luis | 14/10/2014 13:37:00 | 0
Charlie | 12/10/2014 12:25:00 | 1
Luis没有在date_time 14/10/2014 13:37:00(基于表格表)获得时间表
提前感谢您的大力帮助!
答案 0 :(得分:0)
这需要日期算术 - 假设日期和时间列都使用本机格式dates
(并且不存储为字符串):
select s.*,
(exists (select 1
from schedule s
where s.name = dc.name and
dc.date_time >= s.date_start and
dc.date_time < s.date_end + interval 1 day
)
) as result
from date_check dc;
这假设结束日期是&#34;包含&#34; - 意味着包括当天的所有时间。
答案 1 :(得分:0)
select
a.NAME,
a.DATE_TIME,
if((select count(*) from schedule b
where a.DATE_TIME>=b.DateStart
and a.DATE_TIME>=b.DateEND
and a.Name= b.Name)>0,1,0
) as result
from date_check a