我正在创建一个应用程序来计算呼叫中心的一些登录 - 退出,基本上我所做的是在时间内获得间隔。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