如何根据TIME从表中选择记录?

时间:2013-10-20 11:02:27

标签: php mysql

我有一张表格,其中包含我需要根据时间显示的内容。

我的表“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 ;";

当我运行查询时,会打印出NOTHING。即使航班到达时间在查询中的指定时间内。任何人都可以解释为什么会发生这种情况,也许还会告诉我如何正确地编写查询以根据给定的时间打印出记录?

期待您的回音。

1 个答案:

答案 0 :(得分:4)

MySQL函数FROM_UNIXTIME需要时间戳,而您提供已经格式化的时间。

尝试:

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

我假设您的arrivalTime列属于MySQL类型TIME