gpt4 book ai didi

mysql - SQL - 如何使用 BETWEEN (mysql) 获取时间戳范围?

转载 作者:行者123 更新时间:2023-11-29 07:36:08 27 4
gpt4 key购买 nike

例如,如果我有两个表,communicationmovement两者都有一个名为 ID 的列和 timestamp ,我有一个查询,通常看起来像这样:

SELECT * FROM movement m
JOIN communication c
ON m.ID = c.ID
WHERE m.timestamp <= c.timestamp
ORDER BY abs(TIMESTAMPDIFF(second,ctstamp,m.timestamp))
LIMIT 1;

这会找到最接近的communication给定 movement 的时间戳时间戳 m.timestamp <= c.timestamp ,即 movement timestamp 时小于communication timestamp 。但这遗漏了所有 m.timestamp >= c.timestamp

我想要做的是在两侧创建一个大约 10 秒的范围,这样它就是:

WHERE m.timestamp BETWEEN c.timestamp-10 secs AND c.timestamp+10 secs 

所以如果 communication timestamp'2012-03-02|09:02:30' ,那么它将是:

WHERE m.timestamp BETWEEN '2012-03-02|09:02:20' AND '2012-03-02|09:02:40'

那么我该如何实现呢?

任何帮助将不胜感激,谢谢!

编辑

最后我用的是这个:

WHERE m.timestamp BETWEEN TIMESTAMPADD(SECOND,-10,c.timestamp) 
AND TIMESTAMPADD(SECOND,10,c.timestamp);

最佳答案

只需使用interval关键字:

WHERE m.timestamp BETWEEN c.timestamp - interval 10 second AND
c.timestamp + interval 10 second

关于mysql - SQL - 如何使用 BETWEEN (mysql) 获取时间戳范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30790020/

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