wangjinduo35056
王金铎王
2018-09-26 08:42
采纳率: 40%
浏览 5.9k

Mysql查询时间区间数据

我有一张请假申请表,里面有StartTime(请假开始时间),EndTime(请假结束时间),前端查询数据的时候会传一个区间,
比如说我要查询10.01到10.31的所有请假数据,那么请假时间为9.25到10.3 的也要查出来,10.30到11.04的也要查出来,这种
Sql如何写,求大神指点。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • m0_37532969
    LiuZh__ZY 2018-09-26 09:04
    已采纳

    1、StartTime>=10.01 AND EndTime<=10.31
    2、StartTime<=10.01 AND StartTime>=10.01 AND EndTime<=10.31
    3、StartTime>=10.01 AND StartTime<=10.31 AND EndTime>=10.31
    4、StartTime<=10.01 AND EndTime>=10.31

    四种组合都能满足你说的情况,之间用or就可以连起来,看着比较复杂,你画时间轴能看出来

    点赞 评论
  • qq_37129624
    ghq-yes 2018-09-26 08:57

    没理解你的意思,传的时间是10.01-10.31,获取数据区间是9.25-11.4?

    点赞 评论
  • m0_37532969
    LiuZh__ZY 2018-09-26 09:12

    或者用简单点的
    1、StartTime>=10.01 AND StartTime<=10.31
    2、EndTime>=10.01 AND EndTime<=10.31

    2种情况一种满足即可。开始与结束只要在这个区间一个就满足

    点赞 评论
  • hu837389340
    hu837389340 2018-09-26 09:15

    (startTime >= 10.01 and startTime <=10.31) or (endTime >= 10.01 and endTime <=10.31)

    点赞 评论
  • HXNLYW
    葫芦胡 2018-09-26 10:13

    你的意思就是StartTime 在前端传过来的时间区间内,或者endTime 在前端传过来的时间区间内,那就这样喽:
    (startTime >= 10.01 and startTime <=10.31) or (endTime >= 10.01 and endTime <=10.31)

    点赞 评论
  • qq_36589864
    qq_36589864 2018-10-02 08:35

    前后各多加七天就行了

    点赞 评论
  • StEnchanter
    StEnchanter 2018-10-05 15:46

    不知道我是不是读懂了你的意思,用between。请假开始或者结束时间在设置的时间段内

    点赞 评论

相关推荐