在UNIX数据库中检查日期

问题描述:

我有一个显示航班的表格。数据集被自动导入,所以我不希望更改数据库中的数据。在UNIX数据库中检查日期

该集合具有航班的开始和结束日期。这些列被称为“开始”和“结束”,并且包含例如开始日期“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不能自动识别日期格式等)。

任何帮助表示赞赏。

+0

你能为你的表提供一个模式吗?这些文字栏是? – mkasberg

+0

请提供一个[小提琴](https://www.sqlfiddle.com)以及您的数据样本。 – hd1

我相信你可以在查询中使用“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')) 

我发现这个在这个SO用户query_master回答(https://*.com/users/1352125/query-master):MySQL convert datetime to Unix timestamp

您应该能够适应它,以适应您的需求,尽管我没有用当前在数据库中的特定日期格式对其进行测试。

+0

谢谢,这工作完美:) –