我有一个数据库表,用于存储使用时间字段(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
感谢任何帮助。
答案 0 :(得分:0)
你的WHERE语句充满了错误。 CURTIME()
仅返回当前时间,不接受任何参数。您希望使用TIME()
来获取时间戳的时间部分。您还需要使用INTERVAL
为时间戳添加时间。您还需要将预订时间与现在/现在+ 1小时进行比较。
试试这个:
WHERE TIME(bookingTime) between CURTIME() and CURTIME()+INTERVAL 1 HOUR
AND DATE(bookingDate) = CURDATE()