根据UNIX时间检查数据库中的日期

时间:2015-11-05 20:55:36

标签: php mysql

我有一张显示航班的表格。数据集会自动导入,因此我不希望更改数据库中的数据。

该套装包含航班的起止日期。列被称为" start"和"结束",并包含例如开始日期" 4-Nov-15"和结束日期" 17-Dec-15"。

如何构建查询以检查行是否在这两个时间范围内?

$currenttime = time();
mysql_select_db("wifva");
$result = mysql_query("SELECT * FROM flights WHERE start <= '$currenttime' && end >= '$currenttime' ORDER BY deptime");
while($row = mysql_fetch_array($result))
{
?>
<tr class="hover" style="text-align: left;">
<td class="border_bottom"><?php echo $row['deptime'];?>z</td>
<td class="border_bottom"><?php echo $row['callsign'];?></td>

上面的代码确实在我的表中显示了数据,但是没有输出正确的信息(假设php / sql没有自动识别日期格式等)。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我相信您可以在查询中使用“UNIX_TIMESTAMP”来执行此操作。它的用法在这里有很好的描述:

SELECT UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p'))

OR

SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p'))

我在用户query_master(https://stackoverflow.com/users/1352125/query-master)的SO回答中找到了这个:MySQL convert datetime to Unix timestamp

您应该能够根据自己的需要进行调整,但我还没有使用您当前在数据库中的特定日期格式进行测试。