我正在創建一個應用程序來計算呼叫中心的一些登錄 - 退出,基本上我所做的是在時間內獲得間隔。SQL中的數學運算?
哪一個最好: 以獲得數據庫服務器(SQL Server 2000), 或代碼本身(Perl)的間隔? 我在Windows Server 2003
上運行的基本操作是: 登錄,註銷+ 1 但對每個查詢約1 000 000行。
P.S我知道該怎麼做,我想知道的是最佳做法。
這是我的實際查詢:
select S.Ident,S.Dateissued ,
S.LoginMin,S.LogoutMin ,
E.Exc_Name ,
CAST(CAST((LoginMin/60 + (LoginMin % 60)/100.0) as int) AS varchar) + ':' + CASE WHEN LoginMin % 60 < 10 THEN '0'+ CAST(LoginMin % 60 AS varchar) ELSE CAST(LoginMin % 60 AS varchar) END ,
CAST(CAST((LogoutMin/60 + (LogoutMin % 60)/100.0) as int) AS varchar) + ':' + CASE WHEN LogoutMin % 60 < 10 THEN '0'+ CAST(LogoutMin % 60 AS varchar) ELSE CAST(LogoutMin % 60 AS varchar) END,
(LogoutMin-LoginMin)+1 as Mins,
E.Exc_ID,action
FROM igp_ScheduleLoginLogout S INNER JOIN igp_ExemptionsCatalog E
ON S.Exc_ID = E.Exc_ID
where ident=$ident
and dateissued between '$dateissued' and '$dateissued2'"
你有數據模型,可以幫助你更好地回答你的問題嗎? – Chandu 2011-01-27 18:57:51
我添加了查詢 – isJustMe 2011-01-27 19:13:16
只是一個旁註:你正在做的顯示hh:mm的演員在計算上比你的簡單計算貴得多,數量級要高。 – Martin 2011-01-27 19:54:08