选择+- 2分钟,时间格式为()



我试图从我的到达时间表中选择不准确的到达时间,而是-+ 2分钟与这个查询:

SELECT route from arrivaltimes INNER JOIN stops
 ON arrivaltimes.stop_id=stops.stop_id 
WHERE weekday =  ?
and time_format(arrivaltime,'%H:%i')= time_format(curtime() ,'%H:%i')
and name LIKE ? 

如何选择+- 2分钟?

如果字段到达时间是TIME字段,这应该工作:

SELECT route
FROM arrivaltimes
INNER JOIN stops ON (arrivaltimes.stop_id = stops.stop_id)
WHERE
    weekday =  ?
    AND arrivaltime >= curtime() - INTERVAL 2 MINUTE
    AND arrivaltime <= curtime() + INTERVAL 2 MINUTE
    AND name LIKE ? 

也可以使用BETWEEN操作符:

SELECT route
FROM arrivaltimes
INNER JOIN stops ON (arrivaltimes.stop_id = stops.stop_id) 
WHERE
    weekday =  ?
    AND arrivaltime BETWEEN curtime() - INTERVAL 2 MINUTE AND curtime() + INTERVAL 2 MINUTE
    AND name LIKE ? 

您可以简单地使用BETWEEN....ANDDATE_ADD:

SELECT route 
from arrivaltimes 
INNER JOIN stops ON arrivaltimes.stop_id=stops.stop_id 
WHERE weekday =  ?
and time_format(arrivaltime,'%H:%i') BETWEEN 
    time_format(DATE_ADD(curtime,INTERVAL -2 MINUTE) ,'%H:%i') AND 
    time_format(DATE_ADD(curtime,INTERVAL 2 MINUTE) ,'%H:%i')
and name LIKE ? 

相关内容

  • 没有找到相关文章

最新更新