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

Posted

技术标签:

【中文标题】从数据库中获取但仅持续 30 天【英文标题】:Get from database but only last 30 days 【发布时间】:2012-03-25 21:20:40 【问题描述】:

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

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

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

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

2011-10-14 15:33:58

有什么方法可以使用它来更新我的代码以仅检索过去一个月的数据?

非常感谢这里的任何建议。

谢谢C

【问题讨论】:

您可以先搜索再询问。这个怎么样:***.com/questions/2041575/… 【参考方案1】:

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 天前的,但您可以将“间隔 -30 天”替换为“间隔 -1 个月”或访问您已经解释过的dev.mysql。

希望对你有帮助。

【讨论】:

【参考方案2】:

在您的查询中试试这个:

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

【讨论】:

【参考方案3】:
    $wpdb->get_var("select count(*) from " . $wpdb->prefix . "newsletter where status='C'
 AND DATEDIFF(CURDATE(), created) <= 30"); ?>

使用:

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

还有:

CURDATE() - 当前日期

【讨论】:

以上是关于从数据库中获取但仅持续 30 天的主要内容,如果未能解决你的问题,请参考以下文章

如何有效地从 Firebase 实时数据库中获取 7 天、30 天的摘要?

在 where 子句中从当前日期减去 30 天

30天Python入门到进阶——第3天:数据类型(Ⅱ)

《30天吃掉那只 TensorFlow2.0》 1-4 时间序列数据建模流程范例 (国内新冠疫情结束时间预测问题)

在 sql asp.net 中获取过去 30 天未登录的用户

获取 ERROR ERROR [object Object] 但仅在 ios 上。在电脑上工作正常