2015-10-02 35 views
-1

我有一個查詢,該查詢給出了用戶登錄的總小時數。我需要對其進行修改,以便它在不等到用戶登錄的情況下給我一個運行總數出去計算。謝謝參觀。SQL Server:使用登錄和/或註銷來計算運行時間

這是我

SELECT 
    AGENTID, 
SUM (DATEDIFF(ss, LOGON,LOGOFF)/3600.0)AS HOURS 
FROM 
    ASDM.DBO.AGENTLOGIN 
WHERE 
    LOGON > '2015-10-02'AND LOGON < '2015-10-03' 
GROUP BY 
    AGENTID 
+0

因此LOGOFF爲空?替換它與當前時間應該工作,像這樣:'ISNULL(LOGOFF,GETDATE())'(假設您使用非UTC日期,否則使用'GETUTCDATE') – DavidG

+0

@DavidG很好的答案。它工作完美。 – Priide

回答

0

由於LOGOFF值將是空當用戶還沒有註銷,您可以替換當前時間,而不是使用IFNULL功能:

SELECT 
    AGENTID, 
    SUM (DATEDIFF(ss, LOGON,ISNULL(LOGOFF, GETDATE()))/3600.0)AS HOURS 
FROM 
    ASDM.DBO.AGENTLOGIN 
WHERE 
    LOGON > '2015-10-02'AND LOGON < '2015-10-03' 
GROUP BY 
    AGENTID