使用不同的时间戳更正delta值

时间:2016-02-19 06:13:44

标签: java sql algorithm

首先,抱歉标题。我不知道回答这个问题的最佳方法是什么。任何关于更好的头衔的建议都会很好

我有一个包含以下数据的数据库:

ID                 UP            TIMESTAMP
---------- ---------- --------------------
2                   1  2016/01/01 00:00:00
3                   2  2016/01/01 01:00:00      
4                  16  2016/01/01 03:00:00
5                  32  2016/01/01 04:00:00
6                  42  2016/01/01 10:00:00
7                  66  2016/01/01 12:00:00
8                  78  2016/01/01 15:00:00
9                 100  2016/01/01 16:00:00
10                207  2016/01/01 20:00:00

UP中的值总是在增加。那么,我做的计算delta值的方法如下:

(value - lastvalue)/(timestamp - lasttimestamp)

这是正确计算的,我可以像这样绘制信息:

enter image description here

问题是时间戳在同一时间范围内没有分开,因此图形在某种程度上会产生误导,因为在相同长度的值之间可能会有数小时的不同。所以我的问题是,是否有任何算法(在java或SQL中)可以帮助我修复数据,因此每个值之间的差距是相同的时间帧?

谢谢!

1 个答案:

答案 0 :(得分:0)

假设最小时差(timestamp - lasttimestamp)01:00:00

您可以像这样创建一个新的临时表:

ID                 UP            TIMESTAMP
---------- ---------- --------------------
2                   1  2016/01/01 00:00:00
3                   2  2016/01/01 01:00:00
4                   2  2016/01/01 02:00:00
5                  16  2016/01/01 03:00:00
6                  32  2016/01/01 04:00:00
7                  32  2016/01/01 05:00:00
8                  32  2016/01/01 06:00:00
9                  32  2016/01/01 07:00:00
10                 32  2016/01/01 08:00:00
11                 32  2016/01/01 09:00:00
12                 42  2016/01/01 10:00:00
13                 42  2016/01/01 11:00:00
14                 66  2016/01/01 12:00:00
15                 66  2016/01/01 13:00:00
16                 66  2016/01/01 14:00:00
17                 78  2016/01/01 15:00:00
18                100  2016/01/01 16:00:00
19                100  2016/01/01 17:00:00
20                100  2016/01/01 18:00:00
21                100  2016/01/01 19:00:00
22                207  2016/01/01 20:00:00

然后,您可以使用此表绘制图表。时间戳将以恒定的时间帧分隔。