時間フィールドを現在の時刻および現在の時刻に1時間を加えたものと比較して、データベースレコードを取得します

eoiny1

時間フィールド(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]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ