MySQL:过去 24 小时内按小时插入的记录

2024-03-07

我试图列出过去 24 小时内每小时插入数据库的记录数。每行显示该小时插入的记录,以及几小时前的记录。

现在这是我的查询:

SELECT COUNT(*), FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )
FROM `records`
WHERE time > DATE_SUB(NOW(), INTERVAL 24 HOUR)
GROUP BY HOUR(time)
ORDER BY time ASC

现在它返回:

28  23
62  23
14  20
1    4
28  3
19  1

这显示了 23 小时前的两行,而实际上每小时只应显示一行。 我认为这与使用 NOW() 而不是在小时开始时获取时间有关,我不确定如何获取时间。

必须有一种更简单的方法来做到这一点。


如果您按以下方式分组HOUR(time)那么你应该使用HOUR(time)在您选择的表达式中,而不是time。例如:

SELECT HOUR(time), COUNT(*)
FROM `records`
WHERE time > DATE_SUB(NOW(), INTERVAL 24 HOUR)
GROUP BY HOUR(time)
ORDER BY HOUR(time)

或者,您可以按要返回的表达式进行分组:

SELECT COUNT(*), FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )
FROM `records`
WHERE time > DATE_SUB(NOW(), INTERVAL 24 HOUR)
GROUP BY FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )
ORDER BY FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )

如果您想知道,可以安全地致电NOW()在同一个查询中多次这样。来自manual http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html:

每个返回当前日期或时间的函数在查询执行开始时仅对每个查询求值一次。这意味着在单个查询中对诸如 NOW() 之类的函数的多次引用始终会产生相同的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL:过去 24 小时内按小时插入的记录 的相关文章

  • 使用 JdbcTemplate 进行动态查询

    我有一个关于使用 JdbcTemplate 进行动态查询的问题 我的代码如下 String insertQueries INSERT INTO tablename StringJoiner joiner new StringJoiner S
  • MYSQL:如何从姓氏中找到player_id?

    我现在尝试使用非标准化 摘要 表中的数据填充 testMatch 表 如下 测试匹配表 Field Type Null Key Default Extra match id int 11 NO PRI NULL match date dat
  • MySQL 多索引与多列索引进行搜索

    在我正在编写的软件中 它能够搜索给定的表以获取信息 搜索表单有 5 个字段 当然所有字段都对应于表中的不同列 但所有字段都是可选的 我的问题是关于多列索引是否有效以及为其构建查询的正确方法 如果我有一个跨 5 列的索引 并且我构建了一个查询
  • 在 Python 3 的 Pytz 模块中将 EST、CST 和 DST 时区转换为 unix 时间戳

    我有一个采用以下格式的日期 2019 12 13 20 18 EST or 2019 12 13 20 18 DSTor 2019 12 13 20 18 CST 我想将它们转换为unix timestamp 我在用Pytz module
  • MySql 5.0 可以查看位于另一台服务器上的表吗

    MySql 5 0 视图可以使用位于另一台服务器上的表吗 创建这样的视图的语法是什么 联合表 http dev mysql com doc refman 5 0 en federated storage engine html http d
  • 无法将代码优先迁移应用到 mysql 数据库

    我正在使用 EF 代码优先模型开发 asp net mvc 我正在尝试首先使用 EF 代码将迁移应用到我的项目中 我正在使用 MySql 数据库 目前我使用的是 EF 4 3 1 版本和 6 6 4 0 版本的 mysql Connecto
  • mysql utf8_general_ci 区分大小写

    我有一个 mysql 数据库 我使用 utf8 general ci 不区分大小写 在我的表中 我有一些列 例如 ID 和区分大小写的数据 例如 iSZ6fX 或 AscSc2 为了区分大写和小写 最好只在这些列上设置 utf8 bin 如
  • 如何获取文件或目录的标准化日期/时间戳。在纯批处理脚本中?

    Windows 命令行中有没有一种方法可以检索标准化文件或目录的日期 时间戳 修改 创建 访问 独立于语言环境格式 例如 ISO8601 http www iso org iso home standards iso8601 htm 我发现
  • 使用存储过程并发访问MySQL数据库

    我有一个存储过程 它将读取然后增加数据库中的值 许多程序同时使用这个特定的过程 我担心并发问题 特别是读写器问题 有人可以建议我任何可能的解决方案吗 thanks 首先 正如另一篇文章中所述 使用 InnoDB 从 MySQL 5 5 开始
  • 在 Entity-Framework Core 中批量插入到 MySQL [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个由约 10 000 个对象组成的列表 比方说类Person 我需要将其插入到 MySQL 表中
  • 排除任何字段中具有 NULL 值的行结果?

    我有一个像这样的简单选择 SELECT FROM table WHERE fk id 10020 它可以工作 但有一些字段为 NULL 没有模式所以做了 SELECT FROM table WHERE fk id 10020 AND NOT
  • 为什么这个 MySQL 更新不起作用?

    有一张桌子叫meterreadings 我需要复制属性meterreading从一排到另一排 这是数据示例 id meterreadingdate meterreading meterreadingtype id created 1 201
  • MySQL 命令输出在命令行客户端中太宽[重复]

    这个问题在这里已经有答案了 我在用mysql终端模拟器中的命令行客户端lxterminal在Ubuntu中 当我运行以下命令时 mysql gt select from routines where routine name simplep
  • 用于分页的php示例脚本[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 任何人都可以建议一个好的分页 php 脚本 其中人们想要分页显示数据库中的大量项目 以下链接可以帮助您
  • 将时间转换为 am/pm 颤动

    如何将时间转换为 am pm 我有这个输出 I flutter 17720 9 00 00 I flutter 17720 11 00 00 I flutter 17720 12 00 00 这是我尝试过的 final item snaps
  • SimpleSAMLPHP 重定向循环

    我们正在尝试使用自定义 mysql 数据库设置 sso 但它在以下两个请求之间进入无限循环 POST http 192 168 0 15 simplesaml module php core loginuserpass php 设置Cook
  • java.lang.RuntimeException:不支持的文字类型类org.joda.time.DateTime

    我在一个使用库的项目中工作 这对我来说非常新 尽管我在其他项目中使用它 没有任何问题 org joda time DateTime 所以我和Scala 并将项目作为作业运行数据块 scala版本 2 11 12 根据我到目前为止的调查 异常
  • 计算行数并仅获取表中的最后一行

    我有一张桌子叫employeexam其结构和数据是这样的 id course id employee id degree date 1 1 3 8 2013 01 14 2 2 4 15 2013 01 14 3 2 4 17 2013 0
  • PHP 中的嵌套 JSON 输出

    我正在为 iOS 应用程序构建 API 并尝试将 mySQL 数据转换为 JSON 字符串进行处理 所需的输出将需要顶级订单详细信息 例如客户名称和地址 然后是订购的产品子数组 我需要的两个表中有相当多的字段 我希望拥有所有字段 我已经构建
  • 我的数据库有错误

    创建表时如下 create table Ticket ticket id integer not null primary key AirlineName varchar not null CustomerName varchar from

随机推荐