【发布时间】:2023-03-07 03:37:01
【问题描述】:
我们有一个记录履带车辆位置的大型数据库。所以,每一秒,我们都有成千上万的职位出现。 目的是过滤 SQL 请求,因为我们有太多的数据。如果我做一个简单的“从位置选择时间”,我会得到很多位置时间。但我对所有这些都不感兴趣。 所以我的想法是创造一个间隔。我希望数据库每 5 分钟给我一次位置时间。
数据库使用 STR_TO_DATE 函数来获取位置时间。
我的数据是这样的:
2019-06-05 00:00:00
2019-06-05 00:01:00
2019-06-05 00:01:00
2019-06-05 00:02:00
我想要这个:
2019-06-05 00:00:00
2019-06-05 00:05:00
2019-06-05 00:10:00
2019-06-05 00:15:00
正如您在此处看到的,位置乘以“01”“02”.. 已经消失。因为我不想要他们。我想要 00:05:00 的位置时间,然后是 00:10:00 的位置时间,但我不想要这些间隔之间的位置时间。
select
distinct time
from
positions
where
time>STR_TO_DATE('05/06/2019 00:00', '%d/%m/%Y %H:%i')
and time<STR_TO_DATE('06/06/2019 00:00', '%d/%m/%Y %H:%i')
limit 1000;
请问我该怎么做?如何更改我的代码?
我使用的是 Mysql 工作台 6.3 版。
【问题讨论】:
-
那么你的原始数据是什么?你的mysql是什么版本的?
-
我没有看到
00:01:05成为00:10:07的标准 -
不,你不明白我想要什么。这只是一个例子,我只想显示这些位置的时间,但不是全部,仅以 5 分钟的间隔显示。所以 00:00:00 到 00:05:00 之间的所有时间都消失了,然后 00:05:00 到 00:10:00 消失了(只保留第 5 分钟的数据)
-
我看到了其他相关主题,但不是我的情况。我的情况是当你有我展示的 STR_TO_DATE 时。我该怎么办?我是 SQL 新手,所以不太容易理解
-
我同意,我不明白你想要什么。我仍然没有。