Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL中两次差的间隔_Mysql - Fatal编程技术网

MySQL中两次差的间隔

MySQL中两次差的间隔,mysql,Mysql,我有一个MySQL查询,它使用两个不同的时间戳,可以将它们视为一个时间间隔。我需要额外实施25-30%的差异。例如,如果时间差为30分钟,我需要在…之前和之后再请求5分钟。。有没有一种方法不仅可以得到两个时间戳之间的差异,而且可以计算出这个时间百分比来获得适当的时间间隔,所有这些都在一个语句中 如下所示,其中x是计算值 日期格式(时间戳1-间隔x分钟,“%m/%d/%Y%r”)为“开始” 日期格式(时间戳2+间隔x分钟,“%m/%d/%Y%r”)为“结束” ..数据库中有开始时间戳和结束时间戳

我有一个MySQL查询,它使用两个不同的时间戳,可以将它们视为一个时间间隔。我需要额外实施25-30%的差异。例如,如果时间差为30分钟,我需要在…之前和之后再请求5分钟。。有没有一种方法不仅可以得到两个时间戳之间的差异,而且可以计算出这个时间百分比来获得适当的时间间隔,所有这些都在一个语句中

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

日期格式(时间戳1-间隔x分钟,“%m/%d/%Y%r”)为“开始”

日期格式(时间戳2+间隔x分钟,“%m/%d/%Y%r”)为“结束”


..

数据库中有开始时间戳和结束时间戳。您希望根据这些值之间的时间跨度,向它们添加额外的时间百分比。换句话说,在不知道两者之间的差异的情况下,你不能增加或减少任何时间量

所以,首先你必须计算出时间跨度。我将使用分钟作为单位,但使用最适合您需要的:

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\u span
的变量。
new_start
new_end
字段使用变量(转换为秒并分成两半)修改原始开始/结束时间。我还选择了旧的时间跨度和原始的开始/结束时间进行比较

以下是示例输出:

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  

美丽的!我在那里工作,但这确实帮我节省了很多时间。谢谢