gpt4 book ai didi

MySql - 自上次 X 点以来的记录计数

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

我需要统计自上次上午 9:00 以来创建的记录。

因此,在上午 8:59,我需要统计昨天上午 9:00 以来的所有记录,而在上午 9:01,我需要统计今天上午 9:00 以来的所有记录,

数据样本

    ID    |   created
----------------------------------
1 | 2018-11-13 17:00
2 | 2018-11-13 09:00
3 | 2018-11-13 08:01
4 | 2018-11-12 13:00
5 | 2018-11-11 17:31

在 2018 年 11 月 13 日上午 8:59 运行查询应返回 2(第 3,4 行)

在 2018 年 11 月 13 日上午 9:01 运行查询应返回 1(第 2 行)

我正在寻找的查询应该是这样的:

SELECT count(id) FROM myTable WHERE created > "TIME_SINCE_9AM()"

有什么帮助吗?

最佳答案

我找到了一个解决方案,我希望有一个更漂亮的查询,但它有效......

我正在使用 IF 语句来确定现在是上午 9 点之前还是之后,并相应地对记录进行计数,(H var 用于测试目的,如果您在其中输入 18,则它自去年 18:00 起就开始工作)

SET @H = "9"; 

SELECT
IF (TIMEDIFF(NOW(), SUBDATE(CURDATE(),INTERVAL (-@H) HOUR))<0,
SUM(CASE WHEN created>SUBDATE(CURDATE(),INTERVAL (-@H+24) HOUR) THEN 1 ELSE 0 END),
SUM(CASE WHEN created>SUBDATE(CURDATE(),INTERVAL (-@H) HOUR) THEN 1 ELSE 0 END)
) counter
FROM mytable

关于MySql - 自上次 X 点以来的记录计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53284347/

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