-4

我有一张表格,里面有我需要根据时间显示的内容。

我的表“flightSched”有两列,第一列代表“航班号”,另一列代表“到达时间”这些内容如下所示:

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 回答