在Mysql中获取前一个日期

0 投票
2 回答
542 浏览
提问于 2025-04-15 23:28

我有一个表格,格式大概是这样的:

日期 | 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中计算这些行之间的差异。

撰写回答