gpt4 book ai didi

php - 时间戳列中的每日帖子计数

转载 作者:行者123 更新时间:2023-11-29 05:25:09 25 4
gpt4 key购买 nike

我的应用程序是使用 Laravel 4.1 构建的,支持 Laravel 今天正式支持的几乎所有数据库。我有一个 INT(10) 列,用于存储每个“帖子”的 Unix 时间戳,以指示帖子的创建时间。

有没有一种方法可以让我从这种设置中获取每天的帖子数量?基本上,我想用 Google Chart API 制作一个图表来指示过去 1 个月每天发布的帖子数量的趋势。

此外,我正在寻找围绕 DB::raw() 的解决方案,我更愿意使用查询生成器。

最佳答案

如果您想在数据库端执行聚合恕我直言,您必须使用 DB::raw() 因为您需要操作您的时间戳值。

如果理解正确,您主要关心的不是使用 DB::raw() 方法,而是不使用 供应商特定的日期时间函数(如 FROM_UNIXTIME() 在 MySQL 中)。

您可以发出这样的查询,以几乎与数据库无关的方式获得聚合结果(据我所知,所有主要的 DBMS 都有 FLOOR() 函数的实现)

SELECT FLOOR(timestamp / 86400) AS date , COUNT(*) AS total
FROM post
GROUP BY FLOOR(timestamp / 86400)

用查询生成器转换成这样的东西

$result = DB::table('posts')
->select(DB::raw('FLOOR(timestamp / 86400) AS date, COUNT(*) AS total'))
->groupBy(DB::raw('FLOOR(timestamp / 86400) AS date, COUNT(*) AS total'))
->get();

示例输出:

|  DATE | TOTAL ||-------|-------|| 16081 |     2 || 16082 |     3 |

Here is SQLFiddle demo

And then in the client code convert date column value into a human readable form by

date('m/d/Y', 16081 * 86400)

当您遍历结果集时。

关于php - 时间戳列中的每日帖子计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21071453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com