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

Mysql查询时间区间数据

已采纳

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • m0_37532969 LiuZh__ZY 3年前

    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就可以连起来,看着比较复杂,你画时间轴能看出来

    点赞 1 评论 复制链接分享
  • StEnchanter StEnchanter 3年前

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

    点赞 评论 复制链接分享
  • qq_36589864 qq_36589864 3年前

    前后各多加七天就行了

    点赞 评论 复制链接分享
  • HXNLYW 葫芦胡 3年前

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

    点赞 评论 复制链接分享
  • hu837389340 hu837389340 3年前

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

    点赞 评论 复制链接分享
  • m0_37532969 LiuZh__ZY 3年前

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

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

    点赞 评论 复制链接分享
  • qq_37129624 ghq-yes 3年前

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

    点赞 评论 复制链接分享

相关推荐