時間フィールド(bookingTime)と日付フィールド(bookingDate)を使用する予約を格納するために使用されるデータベーステーブルがあります。時間フィールド(bookingTime)をCURTIMEと比較して、次の1時間のレコードを表示しようとしています。一部の結果が返されますが、すべてではありません。NOW()とintervalを使用しようとしましたが、正しい結果が返されないようです。結果には、1時間の予約は表示されず、時間マークを超えていないようです。つまり、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
どんな助けでもありがたいです、ありがとう。
WHEREステートメントはエラーでいっぱいです。CURTIME()
現在の時刻のみを返し、パラメータは取りません。TIME()
タイムスタンプの時間部分を取得するために使用します。またINTERVAL
、タイムスタンプに時間を追加するためにを使用する必要があります。また、予約時間を現在/現在+1時間と比較する必要があります。
これを試して:
WHERE TIME(bookingTime) between CURTIME() and CURTIME()+INTERVAL 1 HOUR
AND DATE(bookingDate) = CURDATE()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加