Php 通过将时间字段与当前时间和当前时间加1小时进行比较来检索数据库记录
我有一个用于存储预订的数据库表,它使用一个时间字段(bookingTime)和一个日期字段(bookingDate)。 我试图通过比较时间字段(bookingTime)和CURTIME来查看下一个小时的记录。我返回了一些结果,但不是所有结果。我尝试使用NOW()和interval,但似乎没有返回正确的结果。结果并没有显示整整一个小时的预订,而且似乎也没有超过小时,这意味着它将显示13:59但不是14:01的预订 以下是我当前使用的查询:Php 通过将时间字段与当前时间和当前时间加1小时进行比较来检索数据库记录,php,mysql,sql,time,Php,Mysql,Sql,Time,我有一个用于存储预订的数据库表,它使用一个时间字段(bookingTime)和一个日期字段(bookingDate)。 我试图通过比较时间字段(bookingTime)和CURTIME来查看下一个小时的记录。我返回了一些结果,但不是所有结果。我尝试使用NOW()和interval,但似乎没有返回正确的结果。结果并没有显示整整一个小时的预订,而且似乎也没有超过小时,这意味着它将显示13:59但不是14:01的预订 以下是我当前使用的查询: SELECT TIME_FORMAT(bookin
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
谢谢你的帮助 您的WHERE语句充满了错误
CURTIME()
只返回当前时间,不接受任何参数。您希望使用TIME()
获取时间戳的时间部分。您还需要使用INTERVAL
将时间添加到时间戳中。您还需要将预订时间与现在/现在+1小时进行比较
试试这个:
WHERE TIME(bookingTime) between CURTIME() and CURTIME()+INTERVAL 1 HOUR
AND DATE(bookingDate) = CURDATE()
我曾尝试使用TIME(),但它会返回多个日期的结果,而不仅仅是今天的结果。我需要在where条款中包括预订日期吗?谢谢你的帮助。谢谢约翰,这很有效。我花了很长时间试图让它工作。