wc619330906
现龙在田丶
采纳率100%
2017-11-06 08:38 阅读 3.7k

请教各位大牛一下,数据库里怎样查询时间段范围内的数据(mysql)

怎样根据 创建时间查询:

1、上一天17点之后至当日9时之前的数据

2、当日9时之后至当日12时之前的数据;

3、当日12时之后至 17时之前的数据

求各位大神帮帮忙~

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

3条回答 默认 最新

  • 已采纳
    Kikyo_1415 放荡不羁爱自由的七宝 2017-11-06 08:56

    SELECT create_time FROM table WHERE create_time BETWEEN DATE_SUB(CURDATE(),INTERVAL 7 HOUR) AND DATE_SUB(CURDATE(),INTERVAL -9 HOUR);

    SELECT create_time FROM table WHERE create_time BETWEEN DATE_SUB(CURDATE(),INTERVAL -9 HOUR) AND DATE_SUB(CURDATE(),INTERVAL -12 HOUR);

    SELECT create_time FROM table WHERE create_time BETWEEN DATE_SUB(CURDATE(),INTERVAL -12 HOUR) AND DATE_SUB(CURDATE(),INTERVAL -17 HOUR);

    点赞 1 评论 复制链接分享
  • airfling airfling 2017-11-06 08:41

    只能用sql吗,如果是javaweb应用的话可以使用java8的localdatetime

    点赞 评论 复制链接分享
  • wang1192851053 IT菜鸟进化中 2017-11-06 08:56

    第一个问题

    针对第二个问题,可以先使用DATE_FORMAT 把当前时间转成年月日(时分秒默认为00:00:00),再使用date_add 函数,加上时间,如下:

    date_add(DATE_FORMAT(NOW(),'%Y-%m-%d') ,interval -8 hour) < create_time <date_add(DATE_FORMAT(NOW(),'%Y-%m-%d') ,interval 9 hour)

    针对第二个问题,可以先使用DATE_FORMAT 把当前时间转成年月日(时分秒默认为00:00:00),再使用date_add 函数,加上时间,如下

    date_add(DATE_FORMAT(NOW(),'%Y-%m-%d') ,interval 9 hour) < create_time <date_add(DATE_FORMAT(NOW(),'%Y-%m-%d') ,interval 12 hour)

    第三个问题同理

    点赞 评论 复制链接分享

相关推荐