sqlserver查询连续签到天数

Posted 何以平天下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver查询连续签到天数相关的知识,希望对你有一定的参考价值。

create table #t
(keyId int identity,actionDate datetime)
insert into #t(actionDate) select distinct CreateDate from CRM_ScoreTransaction WHERE MemberID=‘1E7DFF7F-51ED-4E21-8471-E892E0326BBD‘ order BY CreateDate desc
---采用遍历的方式生成用户连续签到的天数 start
declare @i int ,@imax int ,@startDate datetime
set @i=1
select @imax = max(keyId),@startDate =max(actionDate) from #t

while @i <@imax
begin
set @startDate = dateadd(day,-1,@startDate)
set @i [email protected]+1

if not exists(
select null from #t where keyId [email protected] and actionDate [email protected]
)
begin
set @[email protected]
break;
end
end

if @imax is null
begin
set @i=0
end

select convert(varchar(20),@i) signinday

---采用遍历的方式生成用户连续签到的天数 end
go
truncate table #t
drop table #t





























以上是关于sqlserver查询连续签到天数的主要内容,如果未能解决你的问题,请参考以下文章

sql MySQL的获取连续签到天数

laravel 实现每日签到及奖励功能

PostgreSQL:查找到现在为止的连续天数

大厂面试题

菜鸟项目练习:黑马点评项目总结

商城签到功能的设计与实现