2011-06-13 70 views
1

之間,我有一個表,看起來是這樣的:計算已用時間記錄

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

現在我想顯示所有記錄並顯示每個記錄之間的時間間隔。如果需要,我可以在表中添加另一個字段來存儲EndDateTime,但我猜測在SQL中有一些簡單的方法可以實現,我只是沒有想到。

我目前正在使用MS Access,但如果可能的話,您建議的解決方案應該是數據庫不可知的。

回答

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,因爲這樣會顯着簡化和加快查詢。