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

怎样根据 创建时间查询:

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

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

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

求各位大神帮帮忙~

3个回答

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);

wc619330906
现龙在田丶 抱歉,修改数据试了试,确实是的。谢谢!!
接近 3 年之前 回复
wc619330906
现龙在田丶 上一天17点之后至当日9时之前的数据啊
接近 3 年之前 回复

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

第一个问题

针对第二个问题,可以先使用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)

第三个问题同理

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐