2015-11-05 72 views
0

我有一個顯示航班的表格。數據集被自動導入,所以我不希望更改數據庫中的數據。在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

回答

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')) 

我發現這個在這個SO用戶query_master回答(https://stackoverflow.com/users/1352125/query-master):MySQL convert datetime to Unix timestamp

您應該能夠適應它,以適應您的需求,儘管我沒有用當前在數據庫中的特定日期格式對其進行測試。

+0

謝謝,這工作完美:) –