2010-10-11 278 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