【问题标题】:SQL Query which selects data from the last 15 minutes选择过去 15 分钟的数据的 SQL 查询
【发布时间】:2016-10-11 18:35:39
【问题描述】:

我需要创建一个 SQL 查询来选择过去 15 分钟内记录的数据。

我的数据库中有一个表,它会在您每次穿过激光时记录一个值。该表包含列 ID、日期和时间(日期和时间是单独的列)其他列并不真正适合我正在尝试做的事情

每次您穿过扫描仪时都会创建一个新行。它记录了时间和日期,我如何计算在过去 15 分钟、30 分钟和一个小时内创建的行数? 我猜它在不同的时间会是同样的事情,所以 1 个例子应该没​​问题,谢谢!

【问题讨论】:

  • 为了避免混淆,最后一列是外键,所以不用担心
  • mysql ???神谕??? sql服务器???
  • @Ganesh_Devlekar mysql 但真的重要吗?
  • @LukeRayner 这很重要......所有日期时间函数在不同平台上都不同。
  • @LukeRayner 是的,在 MSSQL 中你说 now() 在 DB2 中你说 CURRENT TIMESTAMP 等等

标签: mysql sql date time


【解决方案1】:

试试这个

select * from YourTable  where
TIMESTAMPDIFF(MINUTE,concat(`Date`,' ',`Time`),NOW()) < 15

SQL fiddle

【讨论】:

  • 如果它是 00:03 会起作用,它还会获得前一天的值吗?我猜我只是在检查
  • @LukeRayner - 是的,时间戳包括日期。
  • @LukeRayner 嗯...现在更新为单引号和日期+时间
  • 它实际上显示了我数据库中的所有内容
  • @LukeRayner 也添加了小提琴
【解决方案2】:

你也可以试试这个:

SELECT * FROM Posts WHERE `Date` > NOW() - INTERVAL 15 MINUTE

【讨论】:

    【解决方案3】:

    这是我的 sql 查询,它将为您提供最后 15 分钟的记录。

    在您的表格中,日期和时间似乎有两个不同的字段,因此请将它们组合到日期时间中,然后与当前日期时间进行比较

    SELECT * FROM table 
    WHERE STR_TO_DATE(CONCAT(`Date`, ' ', `Time`) > DATE_SUB(CURDATE(), INTERVAL 15 MINUTE) 
    

    在一个变量中设置 15 分钟,您可以通过任何分钟并获得相应的结果..

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2013-07-05
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      • 2019-12-18
      相关资源
      最近更新 更多