MySQL中两行之间的时间差
我有下表 事务ID 用户ID TransactionDateTime 1. 1. '2021-04-22 11:00:00' 2. 2. '2021-04-22 11:00:11' 3. 1. '2021-04-22 11:00:22' 4. 3. '2021-04-22 11:00:33' 5. 3. '2021-04-22 11:00:44' 6. 1. '2021-04-22 11:00:55' 选择*, 秒到秒, TransactionDateTime, 按用户ID划分的分区上的LAGTransactionDateTime 按TransactionDateTime时差排序 从桌子上 按TransactionDateTime订购 但是我使用的是MySQL 5.5版本,不支持按函数分区。也许还有别的办法瓦鲁赞·斯捷潘扬 选择t1.*, 秒到秒时间差,t2.TransactionDateTime,t1.TransactionDateTime时差 来自表t1 t1.UserID=t2.UserID上的左联接表t2 t1.TransactionDateTime>t2.TransactionDateTime 如果不存在,请选择NULL 来自表t3 其中t1.UserID=t3.UserID t1.TransactionDateTime>t3.TransactionDateTime t3.TransactionDateTime>t2.TransactionDateTime 按t1.TransactionID订购;MySQL中两行之间的时间差,mysql,sql,mysql-5.5,Mysql,Sql,Mysql 5.5,我有下表 事务ID 用户ID TransactionDateTime 1. 1. '2021-04-22 11:00:00' 2. 2. '2021-04-22 11:00:11' 3. 1. '2021-04-22 11:00:22' 4. 3. '2021-04-22 11:00:33' 5. 3. '2021-04-22 11:00:44' 6. 1. '2021-04-22 11:00:55' 选择*, 秒到秒, TransactionDateTime, 按用户ID划分的分区上的LAGT
我建议使用一个相关子查询来获取MySQL旧版本中的上一个日期/时间:
select t.*,
timediff(TransactionDateTime, prev_TransactionDateTime) as timedifference
from (select t.*,
(select max(t2.TransactionDateTime)
from t t2
where t2.UserId = t.UserId and
t2.TransactionDateTime < t.TransactionDateTime
) as prev_TransactionDateTime
from t
) t;
看看到目前为止你都试了些什么?你卡在哪里了?谢谢,但我使用的是MySQL 5.5版本,不支持按函数分区。“也许还有别的办法?”VaruzhanStepanyan更新道。注:如果版本不是实际版本,请务必报告。