你有一个开始时间戳并在数据库中结束时间戳。您希望根据这些值之间的时间跨度为这些值添加额外的时间百分比。换句话说,如果不知道两者之间的差异,则无法增加或减少任何时间。
所以,首先你必须找出时间跨度。我将使用分钟为单位,而是随便用最适合您的需要:
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和原始开始/结束时间,以供比较。
下面是示例输出:
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
美丽!我在那里工作,但这真的帮了我很多时间。谢谢! – Kevin