2014-07-14 71 views
0

我想設置一個查詢,它將搜索MYSQL數據庫,並且只從數據庫中提取expiry_date在今天的日期之後的行。MYSQL查詢 - 在PHP中按日期排序

我還希望能夠計算出從今天的日期到數據庫中與上述查詢匹配的行的到期日有多少天或幾周。

我認爲,爲了獲得當前日期,我將不得不建立一個變量$ date = time();我稍後可以使用它與數據庫中的expiry_date列進行比較。然而,我現在很難成爲實現所需結果的方法。我不完全是一個PHP noob,但我不是一個專家,所以請容易對我;)

在此先感謝!

+2

這可以而且應該都可以在查詢完成即'WHERE EXPIRY_DATE> NOW()'和'DATEDIFF(EXPIRY_DATE,NOW())'這就是90%,你 –

+0

完成剩下的幾周或幾天您將獲得計算列和[TIMESTAMPDIFF]的幫助(http://dev.mysql.com/doc/refman/5.6/en/date-and-time-functions.html#function_timestampdiff) ,即'TIMESTAMPDIFF(WEEK,NOW(),expiry_date)作爲weeks_remaining'。 – VMai

回答

0

如果您要檢查的列是一個日期(時間),嘗試

$sql="SELECT column FROM table WHERE expiry_date > CURDATE()"; 

如果保存的UNIX時間戳,您可以簡單地使用

$sql="SELECT column FROM table WHERE expiry_date > '".time()."'"; 

如果使用先用「現在()」或第二個,你會在當天得到結果。 如果這是不可接受的,請嘗試「mktime(0,0,0)」而不是time();

0

使用此查詢

$query = "select timestampdiff(days,'$exipry_date','$now')";