MS SQL Server 中如何计算时间差?

现有一属性列记录了时间,datetime格式,如下所示,我想计算各个时间之间的时间差,以秒为单位,求助大侠该怎么做啊?最好能在SQL中做,不用java等其它语言调用。
2005-11-12 21:40:59.730
2005-11-17 13:13:57.640
2006-01-05 11:17:30.030
2006-02-27 20:17:45.077
2006-02-27 20:17:51.233
2006-02-28 18:17:24.450
2006-02-28 18:17:26.733
2006-02-28 18:17:29.560
2006-03-02 21:21:16.903
…………

正常的话,算时间差的秒数是用datediff函数

比如
select datediff(s,'2013-01-07','2013-04-01')
这个就是算2013年4月1号到2013年1月7号之间的秒数

但是你说各个时间的时间差是什么意思
后边一行减前边一行吗?
还有你是mssql的哪个版本?追问

谢谢,没错,是后边一行减前边一行,我的SQL是2008版。
datetime这个函数我会用,但现在的问题是怎么样能让后面那个自动去减前面那个?貌似用存储过程做么?

追答

建表及录入数据

create table t (时间 datetime)
insert into t values ('2005-11-12 21:40:59.730')
insert into t values ('2005-11-17 13:13:57.640')
insert into t values ('2006-01-05 11:17:30.030')
insert into t values ('2006-02-27 20:17:45.077')
insert into t values ('2006-02-27 20:17:51.233')
insert into t values ('2006-02-28 18:17:24.450')
insert into t values ('2006-02-28 18:17:26.733')
insert into t values ('2006-02-28 18:17:29.560')
insert into t values ('2006-03-02 21:21:16.903')

运行如下代码

select a.时间,datediff(s,a.时间,b.时间)
from
(select row_number() over (order by æ—¶é—´) rn,时间 from t) a
left join 
(select row_number() over (order by æ—¶é—´) rn,时间 from t) b
on a.rn=b.rn-1

结果截图

温馨提示:答案为网友推荐,仅供参考
相似回答