数据库中两行相减

来源:互联网 发布:淘宝网睡衣清仓特价 编辑:程序博客网 时间:2024/05/02 00:48

假设有这样的表:

IdSNActionKeyDatetime9201607081823104318882946send2016-07-08 18:23:10.91011201607081823104318882946receive2016-07-08 18:23:13.48013201607081831435300158946send2016-07-08 18:31:43.54715201607081831435300158946receive2016-07-08 18:31:48.99716201607081831435300158959send2016-07-08 18:31:49.00717201607081831435300158959receive2016-07-08 18:31:50.66720201607081835345489720946send2016-07-08 18:35:35.03021201607081835345489720946receive2016-07-08 18:35:40.330

这是一个典型的log表

我们需要知道每次请求与发送之间的时间差,则查询语句为:

select   datediff(millisecond,a.Datetime ,b.Datetime) as ms,a.*,b.*from   (select * from [gx].[dbo].[TxnLogs]   where [key] = 'send'   )a,   (select * from [gx].[dbo].[TxnLogs]   where [key] = 'receive'   )bwhere   a.Action = b.Action   and    a.SN = b.SN

知道了每次的时间差,再在此基础之上查询min、max、avg就容易的多了。

0 0
原创粉丝点击