Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 计算记录之间经过的时间_Sql - Fatal编程技术网

Sql 计算记录之间经过的时间

Sql 计算记录之间经过的时间,sql,Sql,我有一张像这样的桌子: pageload --pageloadid (autoincrementing numeric id field) --BeginDateTime 现在我想显示所有记录,并显示每个记录之间经过的时间。如果需要的话,我可以向表中添加另一个字段来存储EndDateTime,但我猜在SQL中有一些简单的方法来实现这一点,我只是没有想到 我目前正在使用MS Access,但如果可能的话,您建议的解决方案应该与数据库无关。没有一种与数据库无关的方法来做到这一点,如果您谈论的是

我有一张像这样的桌子:

pageload  
--pageloadid (autoincrementing numeric id field)
--BeginDateTime
现在我想显示所有记录,并显示每个记录之间经过的时间。如果需要的话,我可以向表中添加另一个字段来存储EndDateTime,但我猜在SQL中有一些简单的方法来实现这一点,我只是没有想到


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

没有一种与数据库无关的方法来做到这一点,如果您谈论的是无访问,则时间和日期函数因供应商而异


但是,Access支持datediff,MS实现将间隔作为第一个参数。请参见

在这种情况下,无法创建数据库不可知查询:

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