27,579
社区成员
发帖
与我相关
我的任务
分享
declare @beginTime datetime;
declare @endTime datetime;
declare @beginHH varchar(32);
declare @endHH varchar(32);
set @beginTime = '2013-06-30';
set @beginHH = '06:00:00';
set @endTime = '2013-07-05';
set @endHH = '06:59:59';
SELECT CONVERT(char(10), [RegTime],126) as '统计时间', count([ID]) as '数量'
FROM [Datagram].[dbo].[RegisterT]
where convert(char(8),[RegTime],108) between @beginHH and @endHH
and [RegTime] between @beginTime and @endTime
group by CONVERT(char(10), [RegTime], 126)
统计时间 数量
2013-07-01 1
2013-07-02 4
2013-07-03 1
2013-07-04 1
统计时间 数量
2013-06-30 0
2013-07-01 1
2013-07-02 4
2013-07-03 1
2013-07-04 1
2013-07-05 0
declare @beginTime datetime;
declare @endTime datetime;
declare @beginHH varchar(32);
declare @endHH varchar(32);
set @beginTime = '2013-06-30';
set @beginHH = '06:00:00';
set @endTime = '2013-07-05';
set @endHH = '06:59:59';
WITH t AS (
SELECT @beginTime AS 'EventDate'
UNION ALL
SELECT DATEADD(DAY,1,EventDate) FROM tb WHERE EventDate<@endTime
)
select t.EventDate,isnull(数量,0) as [数量]
from t
left join
(
SELECT CONVERT(char(10), [RegTime],126) as '统计时间', count([ID]) as '数量'
FROM [Datagram].[dbo].[RegisterT]
where convert(char(8),[RegTime],108) between @beginHH and @endHH
and [RegTime] between @beginTime and @endTime
group by CONVERT(char(10), [RegTime], 126)
) t1
on t.EventDate=t1.统计时间
declare @beginTime datetime;
declare @endTime datetime;
declare @beginHH varchar(32);
declare @endHH varchar(32);
set @beginTime = '2013-06-30';
set @beginHH = '06:00:00';
set @endTime = '2013-07-05';
set @endHH = '06:59:59';
declare @DateNum int=datediff(d,@beginTime,@endTime);
--select @DateNum
;with t as
(
select convert(char(10), dateadd(d,number,@beginTime),126) EventDate
from master..spt_values
where [type]='p'
and number<=@DateNum
)
select t.EventDate,isnull(数量,0) as [数量]
from t
left join
(
SELECT CONVERT(char(10), [RegTime],126) as '统计时间', count([ID]) as '数量'
FROM [Datagram].[dbo].[RegisterT]
where convert(char(8),[RegTime],108) between @beginHH and @endHH
and [RegTime] between @beginTime and @endTime
group by CONVERT(char(10), [RegTime], 126)
) t1
on t.EventDate=t1.统计时间