【问题标题】:argument between 2 date mysql2日期mysql之间的参数
【发布时间】:2014-10-14 06:44:18
【问题描述】:

我有一个 Mysql 问题。 例如我有这种数据库:

表:日期检查

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 2014 年 14 月 10 日 13:37:00 没有得到时间表(基于餐桌时间表)

提前感谢您的大力帮助!

【问题讨论】:

    标签: mysql sql arguments


    【解决方案1】:

    这需要日期运算——假设日期和时间列都使用原生格式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;
    

    这假定结束日期是“包括在内”——这意味着包括当天的所有时间。

    【讨论】:

      【解决方案2】:
      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
      

      【讨论】:

        猜你喜欢
        • 2017-05-21
        • 1970-01-01
        • 2012-01-09
        • 1970-01-01
        • 2011-11-19
        • 2013-05-12
        • 1970-01-01
        • 2013-04-27
        • 1970-01-01
        相关资源
        最近更新 更多