gpt4 book ai didi

MySql 24小时间隔选择

转载 作者:行者123 更新时间:2023-11-30 01:22:08 26 4
gpt4 key购买 nike

我需要按 24 小时间隔对表中的行进行分组,如下所示

//SELECT count(user_id), DATE(created) as day FROM table GROUP BY day//

SELECT * FROM 表 GROUP BY DATE(已创建)

但我需要从 12:00:00 而不是 00:00:00 开始以 24 小时为间隔进行选择

谢谢

最佳答案

使用以下 SQL 查询:

SELECT *, TIMESTAMPADD(HOUR, 12, DATE(TIMESTAMPADD(HOUR, -12, created))) AS grp
FROM table
ORDER BY created DESC

这会将最近添加的用户置于顶部。如果您希望最旧的用户位于顶部,可以将 DESC 更改为 ASC

此外,我添加的是 grp 列。它将帮助您在 PHP 中使用分组。该列的结果是 f.e. 2013 年 8 月 24 日 12:00:00+0000。每当此值发生更改时,您都需要在 PHP 中创建一个新的组 header 。

现在,我可以为您提供一些代码,但这取决于您使用的数据库访问类型(mysqli_*-函数或PDO),所以我不会详细介绍这一点。

我可以为您提供一个链接,其中包含有关 grouping records using a while loop 的更多信息,它已作为对 SO 上另一个问题的答案提供。

编辑

要仅显示用户数量(以及时间范围的开始时间),您可以使用不同的方法:

SELECT COUNT(id), TIMESTAMPADD(HOUR, 12, DATE(TIMESTAMPADD(HOUR, -12, created))) AS grp
FROM table
GROUP BY grp
ORDER BY created DESC;

要查看正在执行的查询,请查看此 SQL-Fiddle .

关于MySql 24小时间隔选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18419233/

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