-4

時間に応じて表示する必要があるコンテンツの表があります。

私のテーブル "flightSched" には 2 つの列があります。最初の列は "フライト番号" を表し、もう 1 つは "到着時刻" を表します。これらの内容は次のとおりです。

flightNo    arrivalTime
WEE2013     13:00:00    
SKE2013     14:00:00
KEY2013     18:00:00

到着時間に基づいてレコードを表示しようとしています。以下は私の時間変数です:

//Time 30 minutes ago
$CurrentTimeMinus30min = date('H:i', strtotime('-0 minutes'));        
//Time in 4 hours
$CurrentTimePlus4Hours = date('H:i', strtotime('+240 minutes'));

$query  = "SELECT * FROM flightSched WHERE 
                 FROM_UNIXTIME(arrivalTime) BETWEEN FROM_UNIXTIME('$CurrentTimeMinus30min') AND 
                 FROM_UNIXTIME('$CurrentTimePlus4Hours')
                 ORDER BY arrivalTime ASC ;";

クエリを実行すると、何も出力されません。フライトの到着時間がクエリで指定された時間内であっても。誰かがなぜこれが起こるのか説明できますか?おそらく、与えられた時間に基づいてレコードを印刷するためのクエリを正しく書く方法も教えてくれますか?

あなたからの返信を楽しみにしています。

4

1 に答える 1

4

MySQL 関数FROM_UNIXTIMEはタイムスタンプを期待しますが、既にフォーマットされた時刻を提供します。

試す:

SELECT * FROM flightSched 
WHERE arrivalTime BETWEEN '$CurrentTimeMinus30min' AND '$CurrentTimePlus4Hours'
ORDER BY arrivalTime ASC

あなたのarrivalTime列は MySQL-type であると仮定しますTIME

于 2013-10-20T11:13:18.267 に答える