计算记录之间经过的时间

时间:2011-06-13 03:12:57

标签: sql

我有一张看起来像这样的表:

pageload  
--pageloadid (autoincrementing numeric id field)
--BeginDateTime

现在我想显示所有记录并显示每条记录之间的时间。如果有必要,我可以在我的表中添加另一个字段来存储EndDateTime,但我猜测有一些简单的方法可以在SQL中执行此操作,我只是没想到。

我目前正在使用MS Access,但如果可能,您建议的解决方案应与数据库无关。

2 个答案:

答案 0 :(得分:2)

在这种情况下,无法创建与数据库无关的查询:

但是,此查询将在MS Access和MS SQL Server中都有效:

select p1.pageloadid, datediff("s", p1.BeginDateTime, p2.BeginDateTime)
from pageload p1, pageload p2
where 
    p1.pageloadid < p2.pageloadid and
    not exists(select * from pageload p3 where p3.pageloadid > p1.pageloadid and p3.pageloadid < p2.pageloadid)    

查询将显示两个相邻行之间的差异时间(以秒为单位)(如果按pageloadid排序)。

我建议您添加EndDateTime,因为这会简化并加快查询速度。

答案 1 :(得分:0)

没有数据库无关的方法可以做到这一点,如果你在谈论没有Access,时间&amp;日期功能因供应商而异。

但是,Access支持datediff,MS实现将间隔作为第一个参数。见http://www.techonthenet.com/access/functions/date/datediff.php