Php 如何根据时间从表中选择记录?

Php 如何根据时间从表中选择记录?,php,mysql,Php,Mysql,我有一个表格,里面有我需要根据时间显示的内容 我的表“flightSched”有两列,第一列表示“航班号”,另一列表示“到达时间”。这些内容如下所示: flightNo arrivalTime WEE2013 13:00:00 SKE2013 14:00:00 KEY2013 18:00:00 我正在尝试根据到达时间显示记录。 以下是我的时间变量: //Time 30 minutes ago $CurrentTimeMinus30min = date('H

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

我的表“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 ;";
当我运行查询时,根本不会打印任何内容。即使航班到达时间在查询中指定的时间内。有人能解释为什么会发生这种情况吗?也许还可以告诉我如何正确地编写查询以根据给定的时间打印记录


期待您的回复。

来自UNIXTIME的MySQL函数
需要时间戳,而您提供的是已格式化的时间

尝试:


我假设在执行query add line
echo MySQL_error()之后,您的
arrivalTime
列是MySQL类型的
TIME

查看发生了什么。是的,我的到达时间列是MySQL类型的时间。我试过你的建议,但还是不行。您确定“$currentTimeMins30min”和“$CurrentTimePlus4Hours”变量类型与查询中的时间类型兼容吗?@SirBT:由于PHP变量仅添加到查询字符串中,因此应该可以工作。MySQL应该能够将字符串作为
TIME
文本处理。我创建了一个虚拟表
test
,以下操作在我的例子中起作用:
SELECT*fromtest,其中到达时间在'12:00'和'15:00'之间。
。结果将生成两个提供时间之间到达时间
的所有条目。此外,PHP为您的操作生成了这种时间格式:
echo date('H:i',strottime('+240分钟))
回声(在我的例子中):
00:39
。我在phpMyAdmin中尝试了这个查询,它产生了预期的结果,但是当我在MySQL中使用变量“$CurrentTimeMinus30min”和“$CurrentTimePlus4Hours”尝试它时,我没有得到任何结果。
SELECT * FROM flightSched 
WHERE arrivalTime BETWEEN '$CurrentTimeMinus30min' AND '$CurrentTimePlus4Hours'
ORDER BY arrivalTime ASC