从数据库获取但仅持续30天

时间:2012-03-08 11:22:21

标签: php mysql date

我正在使用这个php从我的mysql数据库中获取数据:

$wpdb->get_var("select count(*) from " . $wpdb->prefix . "newsletter where status='C'"); ?>

你可能会注意到我在wordpress中,所以我正在使用$ wpdb变量。

这将返回status='C'表中的所有数据。这一切都正常,但我只需要获取过去30天的数据。我不确定mysql是否存储有关何时存储此条目的数据,但我在created的同一行中有另一列名为status的列。这将按以下格式存储日期:

2011-10-14 15:33:58

有没有办法用它来更新我的代码,只能检索过去一个月的数据?

非常感谢任何建议。

谢谢C

3 个答案:

答案 0 :(得分:2)

在MySQL中有adddate()函数可用于此:)

$wpdb->get_var("select count(*) from " . $wpdb->prefix . "newsletter where status='C' and date_format(created,'%Y%m%d')>date_format(adddate(now(),interval -30 day),'%Y%m%d')");

这个是30天之后,你可以用“间隔-1个月”替换“间隔-30天”或访问你已经解释过的dev.mysql

希望它有所帮助。

答案 1 :(得分:2)

在您的查询中尝试此操作:

select count(*) from " . $wpdb->prefix . "newsletter where status='C' 
AND DATE(created)>=DATE_SUB(CUR_DATE, INTERVAL 30 DAY)

答案 2 :(得分:1)

    $wpdb->get_var("select count(*) from " . $wpdb->prefix . "newsletter where status='C'
 AND DATEDIFF(CURDATE(), created) <= 30"); ?>

用于:

  

DATEDIFF() - 返回expr1 - expr2,表示为以天为单位的值   另一个约会。 expr1和expr2是日期或日期和时间   表达式。只有值的日期部分用于   计算

并且:

  

CURDATE() - 当前日期