gpt4 book ai didi

mysql - 根据日期时间的准确度对表中的数据进行排序

转载 作者:行者123 更新时间:2023-11-29 00:33:19 25 4
gpt4 key购买 nike

我有两个包含日期时间和 double 的表。

看起来像这样:

mysql> select * from ONE;            |  mysql> select * from TWO;
+---------------------+----------+ | +---------------------+----------+
| date | value | | | date | value |
+---------------------+----------+ | +---------------------+----------+
| 2002-03-18 10:30:02 | -181.241 | | | 2002-03-18 10:30:00 | -188.192 |
| 2002-03-18 10:30:06 | -180.673 | | | 2002-03-18 10:30:04 | -187.619 |
| 2002-03-18 10:30:10 | -180.055 | | | 2002-03-18 10:30:08 | -187.032 |
| 2002-03-18 10:30:14 | -179.459 | | | 2002-03-18 10:30:12 | -186.418 |
| 2002-03-18 10:30:18 | -178.801 | | | 2002-03-18 10:30:16 | -185.807 |

我正在尝试对每个具有公共(public)日期列的表中的值执行查询(使用 ONE.date 作为引用)。然而,在某些情况下,测量没有对称日期。上面是这样一个时期的示例(这是最坏的情况),此处表二中的值对应两秒后表一中的值。

为了根据时间对两个表的值进行排序,我想允许一个“排序精度”,设置为一个“事件”的测量值之间的最大时间差。在这种情况下,该精度为 2 秒。

我不希望它看起来如何:如果 ONE.data 和 TWO.date 之间的时间差小于 +- 2 秒;将两个值合二为一:

mysql> select * from ONE;          
+---------------------+----------+-----------+
| date | valueONE | valueTWO |
+---------------------+----------+ ----------+
| 2002-03-18 10:30:02 | -181.241 | -188.192 |
| 2002-03-18 10:30:06 | -180.673 | -187.619 |
| 2002-03-18 10:30:10 | -180.055 | -187.032 |
| 2002-03-18 10:30:14 | -179.459 | -186.418 |
| 2002-03-18 10:30:18 | -178.801 | -185.807 |

如果差异超过 +- 2 秒,则放弃测量。这是我尝试过的方法,但是下面的查询只是超时。

SELECT ONE.date, ONE.value, TWO.date, TWO.value
FROM ONE
join TWO on ONE.date = TWO.date+INTERVAL 1 SECOND or ONE.date = TWO.date

是否可以在 join 语句中加入一个 IF 语句,这样 if

  if SELECT TIMESTAMPDIFF(SECOND,'2002-03-18 10:30:02','2002-03-18 10:30:00') <= 2, then join 

最佳答案

你可以使用 BETWEEN:

SELECT ONE.date, ONE.value value_ONE, TWO.value value_TWO
FROM
ONE join TWO
on ONE.date BETWEEN TWO.date AND TWO.date + INTERVAL 2 SECOND
ORDER BY ONE.date

请参阅 fiddle here .

关于mysql - 根据日期时间的准确度对表中的数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546625/

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