在Mysql中获取前一个日期
我有一个表格,格式大概是这样的:
日期 | ID | 值 | 差异
我需要计算每条记录的值和前一条记录的值之间的差异,这个比较是根据日期来进行的。
比如说:
两天前 | cow | 1 | 空
昨天 | cow | 2 | 空
今天 | cow | 3 | 空
昨天的差异应该是1,而今天的差异也应该是1。
简单来说,我需要根据日期找到前一条记录,但我不知道每条记录之间的时间间隔。我对此困惑了很久。我正在使用Mysql和Python来进行大部分的计算。
2 个回答
0
在Python、存储过程或者其他语言中:
Query Data using your criteria
Fetch first record
Begin Loop
Get value of previous record by executing another query (select value from table where date<current_record_date order by date desc limit 1)
Update current_record set diff=value-previous value
Fetch next record, exit loop if no more
Iterate Loop
0
使用一个查询语句,像这样:SELECT... WHERE date <= NOW() && date >= ( NOW() - 90000 )
。这里的90,000代表25小时,这样可以给你一些时间上的余地来插入数据。然后在Python中计算这些行之间的差异。