2010-10-11 53 views
7

我要查詢記錄的數據庫,其中的日期是等於或超過90天。 這是我到目前爲止有:MySQL查詢日期> =90天

$format = 'Y-m-j G:i:s'; 

$date = date ($format); 

// -90 days from today 

date ($format, strtotime ('-90 day' . $date)); 

我現在只是有點不確定如何構建MySQL查詢。難道是東西這樣的(我知道這是錯誤的,但我不能確定爲別人做什麼):

"SELECT * FROM recurringPayments WHERE lastpmt >= date ($format, strtotime ('-90 day' . $date)) "; 

回答

5
<?php 
$d = date ($format, strtotime ('-90 days')); 

mysql_query("SELECT * FROM recurringPayments WHERE lastpmt <= '$d'"); 
?> 

假設你想要的數據90天,較老。

19
<?php 
mysql_query("SELECT * FROM recurringPayments WHERE lastpmt <= (NOW() - INTERVAL 90 DAY)"); 
?> 
+0

+1使用SQL進行操作 – 2010-12-17 21:09:07

+0

同意在SQL中執行此操作。儘管在PHP中創建新的var並調用一個函數的開銷很小,但相對於在查詢中執行日期數學而言,它還是更多的開銷。 – 2012-04-04 12:10:25

+0

如果需要輸出作爲一個時間戳或需要來比較時間戳,包內UNIX_TIMESTAMP日期數學。在這個例子中,如果你想時間戳輸出,該查詢將是請求mysql_query( 「SELECT * FROM recurringPayments WHERE lastpmt <= UNIX_TIMESTAMP((NOW() - INTERVAL 90 DAY))」); – 2012-04-04 12:18:15