【发布时间】:2012-09-11 14:17:36
【问题描述】:
我需要确定当月以 10 分钟为增量,我们接听了多少电话。我有以下 SQL 查询可以在半小时内工作,但我无法让它以 10 分钟为增量工作。我可能缺少一些简单的东西。任何帮助将不胜感激。谢谢
select
count(*) as Callcount,
case
when datepart(mi, PBXqtime) < 30
then dateadd(hh, datediff(hh, 0, PBXqtime) + 0, 0)
else dateadd(mi, 30, dateadd(hh, datediff(hh, 0, PBXqtime) + 0, 0))
end as time
from
callcomplete
where
CustId = '3100472'
and PBXQTime between '11/1/11 0:0:00' and '11/30/11 23:59:00'
group by
case
when datepart(mi, PBXqtime) < 30
then dateadd(hh, datediff(hh, 0, PBXqtime) + 0, 0)
else dateadd(mi, 30, dateadd(hh, datediff(hh, 0, PBXqtime) + 0, 0))
end
【问题讨论】:
-
你不把数字 30 换成 10 吗?为什么这不起作用?
-
@RBarryYoung:因为在每个 CASE 语句中都需要 5 个 WHEN 子句和一个 ELSE 子句。
-
@Jonathan Leffler:啊,对。
-
SQL 是一种语言,不同的数据库产品以不同的方式实现。最大的变化领域之一是日期时间操作函数。我可以猜测这是 SQL Server(或可能是 Sybase),但请编辑您的问题并添加合适的标签。