获取在sql asp.net中过去30天内未登录的用户

rn0zuynd  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(405)

我想试试过去30天没有记录的记录。我试过,我也得到了记录,但是,记录显示从数据库谁登录前30天。但我想显示,从当前日期算起的最后30天内,谁没有登录,我可以禁用它们。
我尝试下面的sql查询

select distinct CmsUserLogTime.UserId  
from CmsUserLogTime 
right join CmsUser on CmsUserLogTime.UserId = CmsUser.Id
where CmsUserLogTime.LoginLogoutTime <= DateAdd(Day, -30, GetDate()) 
order by 1 asc

我只想比较一下从当前日期到最后30天,这样我就可以得到记录了。
谢谢。

bbuxkriu

bbuxkriu1#

在where子句中使用dateadd:
...

WHERE CmsUserLogTime.LoginLogoutTime < DATEADD(day, -30, GETDATE())

你也可以用缩写d或dd代替day。

iezvtpos

iezvtpos2#

使用 NOT IN ```
select
CmsUserLogTime.UserId
from CmsUserLogTime
inner join CmsUser on CmsUserLogTime.UserId = CmsUser.Id
where CmsUserLogTime.UserId in (select UserID from CmsUserLogTime group by UserID having max(LoginLogoutTime) <= dateadd(day,-30,getdate()))

注意,因为您没有从 `CmsUser` table,我觉得没必要 `JOIN` 但如果您确实需要该表中的列,请保留它。

相关问题