当前位置: 首页 > 面试题库 >

使用Unix时间戳在最近5分钟内选择行

慕乐池
2023-03-14
问题内容

Iam试图弄清楚数据是在大约5分钟内保存到数据库的。

SELECT COUNT(id), DATE_FORMAT(`timestamp`, '%Y-%m-%d %H:%i')
FROM `table`
WHERE `timestamp` >= CURRENT_TIMESTAMP - INTERVAL 5 MINUTE

timestamp 是Unix时间戳(1970年以来的毫秒)。

不起作用,我得到nullnum_rows而不是0,如果我使用

if (!isset($resultHistory->num_rows) || !$resultHistory->num_rows)

要执行操作,代码不会进入循环。

我也试过了

SELECT COUNT(id), DATE_FORMAT(`timestamp`, '%Y-%m-%d %H:%i')
    FROM `table`
    WHERE DATE_FORMAT(`timestamp`, '%Y-%m-%d %H:%i') >= CURRENT_TIMESTAMP - INTERVAL 5 MINUTE

问题答案:

Current_timestamp以SQL
TIMESTAMP(而不是UNIX时间戳)的形式返回当前日期,因此您必须使用unix_timestamp函数进行转换:

SELECT COUNT(id), from_unixtime(`timestamp` / 1000, '%Y-%m-%d %H:%i')
FROM `table`
WHERE `timestamp` >= unix_timestamp(CURRENT_TIMESTAMP - INTERVAL 5 MINUTE) * 1000

编辑:

由于您的timestamp列中包含Unix时间,因此您还必须使用from_unixtime设置日期格式

编辑2:

在MySQL UNIX中,时间是自纪元(1/1/70)起的秒数,因此,如果您的timestamp列包含毫秒数,则也必须除以1000。



 类似资料:
  • 问题内容: 我必须在未来5分钟内创建一个“ Expires”值,但是我必须以UNIX Timestamp格式提供它。到目前为止,我已经掌握了这个功能,但看起来像个hack。 是否有为我转换时间戳的模块或功能? 问题答案: 刚发现,它甚至更短。

  • 问题内容: 我有一个带有通常时间戳的索引: 如何为具有相同时间戳但四舍五入到最接近的第5分钟间隔的该数据帧创建一列?像这样: 问题答案: 使用算术的解决方案是正确的,但是很复杂而且很慢。而是在pandas中使用漂亮的东西: 让我们比较一下速度: 快大约1000倍!

  • 问题内容: 我在跑步时遇到崩溃,它指向。控制台中的错误是: 无法将类型“ Swift.Optional”(0x1192bf4a8)的值强制转换为“ NSTimeZone”(0x1192c0270)。 价值就是 我试图从Firebase中提取一个保存为字符串的Unix时间戳。将其转换为日期,然后再次将其另存为字符串,以便将其张贴在单元格标签上。 我从StackOverflow获得了这段代码。我插入了

  • 问题内容: 我在SO上看到过类似类型的问题,但是,我无法找到针对我特定问题的解决方案。(仅供参考,这些不是我的真实专栏,只是一个简短的示例)。 我有一个基本表: 因此,我想做的是能够: 我已经尝试过类似的东西: 但这不会返回我要查找的行。修复此查询的任何帮助都将非常有用。 非常感谢。 问题答案: 编辑: 顺便说一句,如果您想知道为什么原来的查询不起作用,让我们分解一下: 从…中选择一些东西 其中=

  • 本文向大家介绍如何在MySQL当前时间戳中选择10分钟内的所有记录?,包括了如何在MySQL当前时间戳中选择10分钟内的所有记录?的使用技巧和注意事项,需要的朋友参考一下 您可以使用以下语法选择当前时间戳内10分钟之内的所有记录- 为了理解上述语法,让我们创建一个表。创建表的查询如下- 使用insert命令在表中插入一些记录。查询如下- 使用select语句显示表中的所有记录。查询如下- 以下是输

  • 我知道这是一个非常常见的问题,但我觉得我找到的答案并没有真正解决问题。我将概述我的具体用例,并对来自其他SO答案和网络的信息进行总结。 对于我正在编写的服务,数据库条目被创建并存储在移动设备和我们的网站上,需要以两种方式同步。我们目前的目标是Android和iOS,它们都使用sqlite作为关系数据库。服务器端是使用Django和MySQL在Python中实现的,但将来可能会有其他解决方案取代它。