之間,我有一個表,看起來是這樣的:計算已用時間記錄
pageload
--pageloadid (autoincrementing numeric id field)
--BeginDateTime
現在我想顯示所有記錄並顯示每個記錄之間的時間間隔。如果需要,我可以在表中添加另一個字段來存儲EndDateTime,但我猜測在SQL中有一些簡單的方法可以實現,我只是沒有想到。
我目前正在使用MS Access,但如果可能的話,您建議的解決方案應該是數據庫不可知的。
之間,我有一個表,看起來是這樣的:計算已用時間記錄
pageload
--pageloadid (autoincrementing numeric id field)
--BeginDateTime
現在我想顯示所有記錄並顯示每個記錄之間的時間間隔。如果需要,我可以在表中添加另一個字段來存儲EndDateTime,但我猜測在SQL中有一些簡單的方法可以實現,我只是沒有想到。
我目前正在使用MS Access,但如果可能的話,您建議的解決方案應該是數據庫不可知的。
這是不可能在這種情況下創建數據庫無關的查詢:
但是這個查詢都將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
,因爲這樣會顯着簡化和加快查詢。
沒有數據庫不可知的方式來做到這一點,如果你在談論沒有訪問,時間&日期功能因供應商而異。
但是,Access支持datediff,並且MS實現將間隔作爲第一個參數。見http://www.techonthenet.com/access/functions/date/datediff.php