gpt4 book ai didi

mysql - SQL 日期不是相对的

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

我有一个表,我每 15 分钟存储一次 cron 作业的结果,它只不过是一个时间戳、一个人口数量和一个 ID。

我正在尝试按以下方式查询它。

SELECT ROUND(AVG(`population`),0) AS population, DATE(`time`) AS date
FROM `swg_servertracker`
WHERE `time` >= DATE(NOW()) - INTERVAL 7 DAY
GROUP BY DATE(`time`)
DESC
LIMIT 7

enter image description here

它的作用是创建每日平均值,并获取最后 7 个条目。可悲的是,顺序不对,所以我将其翻转为升序。我的问题是,当我反转 (asc) 它时,它会跳过今天,并额外返回一天(今天是 10 月 3 日,当我使用升序时,它没有被计入方程)

我试图将 where 语句设置为刚刚 - 间隔 168 小时(也是 7 天,但相对后退),这也没有结果。今天仍然跳过,从昨天开始回溯 7 天。

SELECT ROUND(AVG(`population`),0) AS population, DATE(`time`) AS date 
FROM `swg_servertracker`
WHERE `time` >= NOW() - INTERVAL 168 HOUR
GROUP BY DATE(`time`)
ASC
LIMIT 7

Result is skipping today

那么有什么方法可以让我也考虑到今天吗?

最佳答案

您选择了 8 条记录而不是 7 条记录。如果要选择最近的7条记录,必须使用“大于”号而不是“大于等于”号。

SELECT ROUND(AVG(`population`),0) AS population, DATE(`time`) AS date 
FROM `swg_servertracker`
WHERE `time` > NOW() - INTERVAL 7 DAY
GROUP BY DATE(`time`)
ASC
LIMIT 7

关于mysql - SQL 日期不是相对的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52624610/

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