gpt4 book ai didi

mysql - 在 while 循环中加入所有列

转载 作者:行者123 更新时间:2023-11-28 23:22:03 24 4
gpt4 key购买 nike

我有这个循环:

BEGIN
DECLARE time INT DEFAULT 1479154801;

WHILE time <= 1481756399 DO
SELECT time;
SELECT COUNT(*) FROM phpbb_posts WHERE post_time BETWEEN time AND (time+86400);
SET time = time + 86400;
END WHILE;
END

它按我想要的方式工作,但结果没有分组,它们看起来像这样:

+------------+
| time |
+------------+
| 1479154801 |
+------------+

+----------+
| COUNT(*) |
+----------+
| 746 |
+----------+

+------------+
| time |
+------------+
| 1479241201 |
+------------+

+----------+
| COUNT(*) |
+----------+
| 652 |
+----------+

...

当我希望它看起来像这样时:

+------------+----------+
| time | COUNT(*) |
+------------+----------+
| 1479154801 | 746 |
| 1479241201 | 652 |
...

我该怎么做?在 SQL 方面,我完全是个新手,非常感谢您的帮助。

最佳答案

听起来您每天都需要信息。这是否符合您的要求?

SELECT date(from_unixtime(post_time)), COUNT(*)
FROM phpbb_posts
GROUP BY date(from_unixtime(post_time));

我发现日期比 Unix 时间戳更直观。如果您不同意,您可以使用 unix_timestamp() 将值转换回来。

如果您更喜欢日期,您可以减去一个小时:

SELECT date(date_sub(from_unixtime(post_time), interval 1 hour)) as dte, COUNT(*)
FROM phpbb_posts
GROUP BY date(date_sub(from_unixtime(post_time), interval 1 hour));

或者,如评论所建议的那样,从 post_time 中减去/添加 3600。

关于mysql - 在 while 循环中加入所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41151409/

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