通过将时间字段与当前时间和当前时间加1小时进行比较来检索数据库记录

时间:2013-12-28 13:41:58

标签: php mysql sql time

我有一个数据库表,用于存储使用时间字段(bookingTime)和日期字段(bookingDate)的预订。 我试图通过比较时间字段(bookingTime)和CURTIME来查看下一个小时的记录。我得到了一些结果,但不是一切。我试图使用NOW()和间隔,但似乎没有任何东西返回正确的结果。结果并没有显示我整整一个小时的预订,似乎没有超过小时标记意味着它会在13:59而不是14:01向我显示预订。

以下是我目前使用的查询:

SELECT
    TIME_FORMAT(bookingTime, '%H:%i') as bookingTime, 
DATE_FORMAT(bookingDate, '%d/%m/%Y') as bookingDate, 
jobId, callSign, name, pickupAdd, phoneNum, destAdd, jobType, carType 
FROM job 
WHERE TIME(bookingTime) between curtime(bookingTime) and curtime(bookingTime)+3600
order by DATE(bookingDate), TIME(bookingTime) asc

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

你的WHERE语句充满了错误。 CURTIME()仅返回当前时间,不接受任何参数。您希望使用TIME()来获取时间戳的时间部分。您还需要使用INTERVAL为时间戳添加时间。您还需要将预订时间与现在/现在+ 1小时进行比较。

试试这个:

WHERE TIME(bookingTime) between CURTIME() and CURTIME()+INTERVAL 1 HOUR
  AND DATE(bookingDate) = CURDATE()