Php 如何根据时间从表中选择记录?
我有一个表格,里面有我需要根据时间显示的内容 我的表“flightSched”有两列,第一列表示“航班号”,另一列表示“到达时间”。这些内容如下所示: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
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 lineecho 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