首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL中两次差异的间隔

问MySQL中两次差异的间隔
EN

Stack Overflow用户
提问于 2011-08-12 05:36:06
回答 1查看 409关注 0票数 1

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

如下所示,其中x是计算值。

。。

DATE_FORMAT(timestamp1 -间隔x分钟,‘%m/%d/%Y%r’) AS 'Start',

DATE_FORMAT(timestamp2 +间隔x分钟,‘%m/%d/%Y%r’) AS 'End',

。。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-12 06:13:47

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

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

代码语言:javascript
复制
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_start和new_end字段使用变量(转换为秒并一分为二)来修改原始开始/结束时间。我还选择了old_span和原始的开始/结束时间进行比较。

以下是示例输出:

代码语言:javascript
复制
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  
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7033177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档