2012-11-04 101 views
0

我有一堆行的數據庫。其中一列是「日期」,其格式爲:MM/DD/YYYY每行的日期H:MM PM/AM選擇列的最接近當前日期的MySQL行

如何編寫PHP以選擇日期最近的行通過的日期。這意味着如果你有明天的日期,今天的日期和昨天的日期,它會選擇日期爲昨天的行。

我已經連接到數據庫:

mysql_connect('localhost','username','pass'); 
mysql_select_db('db_name'); 

如何編寫一個查詢來抓住這個?

+1

[**請勿在新代碼**中使用'mysql_ *'函數](http://bit.ly/ phpmsql)。他們不再被維護,[棄用過程](http://j.mp/Rj2iVR)已經開始。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

+0

如果你想繼續使用mysql * _函數,對於大多數你可以將mysql更改爲mysqli。所以使用mysqli_connect()和mysqli_select_db()和soforth。雖然這不是mysqli的意圖,但它在大多數情況下都可以使用。 – alecwhardy

回答

2

我會做過濾在SQL而非PHP,使用以下查詢的變化:

SELECT * 
FROM myTable 
WHERE theDate < CURDATE() 
ORDER BY theDate DESC 
LIMIT 1 

這將選擇過去(theDate < CURDATE())的所有行,在逆時間順序排序它們(ORDER BY theDate DESC ),然後取第一條記錄(LIMIT 1)。

0

當你查詢數據庫,ORDER BY日期DESC LIMIT 1

這隻會返回最新的結果,因而結果最接近當前日期。 (這隻適用於未將未來日期記錄的項目)