gpt4 book ai didi

mysql - MySQL中两次差异的间隔

转载 作者:行者123 更新时间:2023-11-29 07:06:26 25 4
gpt4 key购买 nike

我有一个 MySQL 查询,它使用两个不同的时间戳,可以将其视为时间间隔。我需要实现额外的 25-30% 的差异。例如,如果时间之间的差异是 30 分钟,我需要请求额外的 5 分钟之前和 5 分钟之后..有没有办法不仅可以得到两个时间戳之间的差异,而且可以计算这个'百分比' 获取适当间隔的时间,全部在一个语句中?

类似于下面的内容,其中 x 是计算值。

..

DATE_FORMAT(timestamp1 - INTERVAL x MINUTE,'%m/%d/%Y %r') AS '开始',

DATE_FORMAT(timestamp2 + INTERVAL x MINUTE,'%m/%d/%Y %r') AS '结束',

..

最佳答案

您在数据库中有一个开始时间戳和一个结束时间戳。您希望根据这些值之间的时间跨度向这些值添加额外的时间百分比。换句话说,如果不知道两者之间的区别,就不能增加或减少任何时间量。

所以,首先你得弄清楚时间跨度。我将使用分钟作为单位,但使用最适合您需要的任何单位:

SELECT
@new_span := TIMESTAMPDIFF(MINUTE, timestamp1, timestamp2) * 1.25 new_span,
DATE_SUB(timestamp1, INTERVAL (@new_span*60)/2 SECOND) AS new_start,
DATE_ADD(timestamp2, INTERVAL (@new_span*60)/2 SECOND) AS new_end,
TIMESTAMPDIFF(MINUTE, timestamp1, timestamp2) old_span,
timestamp1 AS previous_start,
timestamp2 AS previous_end
FROM table;

因此此查询将两次差值加上 25% 存储为名为 new_span 的变量。 new_startnew_end 字段使用变量(转换为秒并分成两半)来修改原始开始/结束时间。我还选择了 old_span 和原始开始/结束时间,以进行比较。

这是示例输出:

new_span  new_start            new_end              old_span  previous_start       previous_end         
1.25 2011-08-11 15:53:22 2011-08-11 15:55:38 1 2011-08-11 15:54:00 2011-08-11 15:55:00
1350.00 2011-08-09 00:45:00 2011-08-10 17:15:00 1080 2011-08-09 12:00:00 2011-08-10 06:00:00

关于mysql - MySQL中两次差异的间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7033177/

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