会员按天统计、日分时统计
会员表:tbl_member /regtime注册日期
按天统计:
存储过程:
create proc sp_tjmember
@type int
as
DECLARE @BDATE datetime
DECLARE @EDATE datetime
SET @EDATE=convert(varchar,getdate(),23)
if @type=1
begin
SET @BDATE=convert(varchar(7),getdate(),120)+'-01'--当月
end
else
begin
SET @BDATE=convert(varchar,dateadd(day,-30,getdate()),23)--近30天
end
print @BDATE
print @EDATE
select dt,sum(num) as num from (
SELECT CONVERT(VARCHAR(10),DATEADD(day,NUMBER,@BDATE),120) dt
,isnull(b.num,0) as num
FROM MASTER..SPT_VALUES as a
left join (select regtime,count(*) as num from tbl_member group by regtime) b
on datediff(day,dateadd(d,a.number,@BDATE),b.regtime)=0
WHERE TYPE='P'
AND DATEADD(day,NUMBER,@BDATE)<=@EDATE) as tbl group by dt
日分时统计:
存储过程:
create proc sp_tjmemberTM
@BDATE datetime
as
DECLARE @EDATE datetime
SET @EDATE=convert(varchar,DATEADD(day,1,@BDATE),23)
SELECT right(CONVERT(VARCHAR(13),DATEADD(hour,NUMBER,@BDATE),21)+':00',5)+' 至 '+
case right(CONVERT(VARCHAR(13),DATEADD(hour,NUMBER+1,@BDATE),21)+':00',5)
when '00:00' then '24:00' else right(CONVERT(VARCHAR(13),DATEADD(hour,NUMBER+1,@BDATE),21)+':00',5) end as dt
,isnull(b.num,0) as num
FROM MASTER..SPT_VALUES as a
left join (select CONVERT(VARCHAR(13),regtime,21) as regtime,count(*) as num from tbl_member group by CONVERT(VARCHAR(13),regtime,21)) b
on CONVERT(VARCHAR(13),DATEADD(hour,NUMBER,@BDATE),21)=CONVERT(VARCHAR(13),regtime,21)
WHERE TYPE='P'
AND DATEADD(hour,NUMBER,@BDATE)<@EDATE
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)