Yii2 数据提供者如何返回过去 24 小时的结果

Posted

技术标签:

【中文标题】Yii2 数据提供者如何返回过去 24 小时的结果【英文标题】:How Yii2 data provider can return results for last 24h 【发布时间】:2015-07-09 22:18:18 【问题描述】:

我只需要在 updated_at 字段不早于 24 小时的情况下从数据库表中返回结果。

在我的索引操作中,我有以下代码:

$dataProvider = new ActiveDataProvider([
    'query' => SearchStats::find(),
    'pagination' => [
        'pageSize' => 10,
    ],
]);

如何修改此代码以返回过去 24 小时内插入/更新的结果?

updated_at 是整数,我使用的是TimestampBehavior

【问题讨论】:

【参考方案1】:

将您的查询更改为:

use yii\db\Expression;

SearchStats::find()
    ->where(['>=', 'updated_at', new Expression('UNIX_TIMESTAMP(NOW() - INTERVAL 1 DAY)')])

相关链接:

Related question on SO Using where with ActiveQuery yii\db\Expression

【讨论】:

我现在没有任何结果,今天有记录o.O 您能说明updated_at 是如何存储的吗?一个值的例子就足够了。 整数(11):1430386702 如果我将 NOW() 更改为 CURDATE() 它可以工作......我不知道为什么 我根据你的情况更新了问题。但我认为对于此类数据,使用timestampdatetime 等日期格式会是更好的选择。

以上是关于Yii2 数据提供者如何返回过去 24 小时的结果的主要内容,如果未能解决你的问题,请参考以下文章

Graphite 只会显示过去 24 小时的数据

grafana:过去 24 小时 - 转移和 2 小时丢失

Oracle 取过去一个小时每分钟的数据应该如何写sql?

检查自 Woocommerce 订单下达以来是不是已过去 24 小时

在过去 24 小时内从 MySQL 中选择行并根据间隔 X 跳过行?

选择过去 24 小时和过去 ​​30 天的最低和最高温度 [关闭]