我有一张看起来像这样的表:
pageload
--pageloadid (autoincrementing numeric id field)
--BeginDateTime
现在我想显示所有记录并显示每条记录之间的时间。如果有必要,我可以在我的表中添加另一个字段来存储EndDateTime,但我猜测有一些简单的方法可以在SQL中执行此操作,我只是没想到。
我目前正在使用MS Access,但如果可能,您建议的解决方案应与数据库无关。
答案 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