我有一张表格,其中包含我需要根据时间显示的内容。
我的表“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。即使航班到达时间在查询中的指定时间内。任何人都可以解释为什么会发生这种情况,也许还会告诉我如何正确地编写查询以根据给定的时间打印出记录?
期待您的回音。
答案 0 :(得分:4)
MySQL函数FROM_UNIXTIME
需要时间戳,而您提供已经格式化的时间。
尝试:
SELECT * FROM flightSched
WHERE arrivalTime BETWEEN '$CurrentTimeMinus30min' AND '$CurrentTimePlus4Hours'
ORDER BY arrivalTime ASC
我假设您的arrivalTime
列属于MySQL类型TIME
。