2日期mysql之间的参数

时间:2014-10-14 06:44:18

标签: mysql sql arguments

我有一个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(基于表格表)获得时间表

提前感谢您的大力帮助!

2 个答案:

答案 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