admin

计算记录之间经过的时间

sql

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

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

现在,我想显示所有记录,并显示每条记录之间经过的时间。我可以在表中添加另一个字段,以在需要时存储EndDateTime,但是我猜想有一种简单的方法可以在SQL中做到这一点,而我只是没有想到。

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


阅读 222

收藏
2021-07-01

共1个答案

admin

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

但是,此查询将在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因为这将大大简化和加速查询。

2021-07-01