我正在使用这个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
答案 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() - 当前日期