预定办公室 
假如一个人 需要预定 2010/01/01 ~ 2013/01/01 ,  这个时间段的空闲办公室   搜索结果没有但是 查询数据发现: 办公室1 在 2010/01/01 ~ 2012/01/01 空闲;  办公室2  在 2012/01/01 ~ 2013/01/01 空闲请问 sql 里有这中时间段的搜索办法吗? 谢谢大家

解决方案 »

  1.   

    select *
    from tb 
    where 时间字段 between '2010-01-01' and '2013-01-01'
      

  2.   

    看字段是什么格式,between and是包含等于的
      

  3.   


    不是这个意思
    我是希望sql 自动找到 两个匹配的办公室
    比如 我需要 2010/01/01 ~ 2013/01/01 
    sql搜索  
    然后,自动找到可以帮助你解决的方案
    可能是方案1: 办公室1 在 2010/01/01 ~ 2012/01/01 空闲; 办公室2 在 2012/01/01 ~ 2013/01/01
    可能是方案2: 办公室1 在 2010/01/01 ~ 2012/01/01 空闲; 办公室3 在 2012/01/01 ~ 2012/06/01;  办公室4 在 2012/06/01 ~ 2013/01/01..... xiexie 
      

  4.   

    贴出你的SHOW CREATE TABLE。和你的SELECT语句。这样大家才好帮你。
      

  5.   

    这个没法直接查了,要程序里再做处理,把所以整个时间段的选出,然后设计个算法填满整段时间sql选出来的必然列数一样
      

  6.   


       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  7.   

    查询时间from完全匹配数据库from, 查询时间to必需大于等于数据库to,
    如果等于则输出找到的结果,如果大于就计算出差值,进行下一轮的匹配,
    如此循环下去直到查询时间from不能匹配数据库from便停止,告知没有任何预定办公室
      

  8.   


    i don't understand...  can you explicate more clearly? thank you very much!!!!!
      

  9.   

    查询时间from完全匹配数据库from, 查询时间to必需大于等于数据库to,
    如果等于则输出找到的结果
    from:启始时间  to:结束时间如:你找2010/01/01 ~ 2013/01/01
        selecet from,to from mytable where from = '2010/01/01'and to = '2013/01/01'  
        就找到
    ============================================================
    如果大于就计算出差值,进行下一轮的匹配(小于就不用说了),
    from:启始时间  to:结束时间如:你找2010/01/01 ~ 2013/01/01
        selecet from,to from mytable where from = '2010/01/01'  
        2013/01/01时间减去查询到的to得到to1
        selecet from,to from mytable where from = (上面查询到的to) and to = to1
        若大于就计算出差值,进行下一轮的匹配
    ===========================================================
    如此循环下去直到查询时间from不能匹配数据库from便停止,告知没有任何预定办公室
    from:启始时间  to:结束时间当结束时间小于所有查询到的to时间时一点思想,没什么的,但还是比较麻烦,不知道有没有好的函数可以用.
      

  10.   


    Please look this, thank you hero
    http://topic.csdn.net/u/20100823/20/d8dff49b-a82b-4ca5-a4fa-792307866d46.html
      

  11.   


    SQL query: DocumentationSELECT *
    FROM `RESERVATION`
    WHERE 1 selecet
    FROM ,
    TO FROM `RESERVATION`
    WHERE FROM = '2010/01/01'
    AND TO = '2013/01/01'MySQL said: Documentation
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'selecet from,to from `RESERVATION` where from = '2010/01/01'and to = '2013/01/01' at line 3 it's wrong hero