получить пользователя, который не авторизовался за последние 30 дней в sql asp.net

0

Я хочу попробовать получить запись, которая не регистрируется за последние 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 дней, и я могу получить записи.

Благодарю.

  • 2
    MySQL сервер> SQL.
  • 0
    Вы, кажется, противоречите себе в вопросе. Вы хотите, чтобы пользователи, которые не выполняли вход / выход из системы в течение 30 дней или более, или вы хотите что-то еще?
Показать ещё 1 комментарий
Теги:
sql-server
sql-server-2012

2 ответа

3

Использование 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, я не вижу необходимости JOIN к нему, но оставил его, если вам действительно нужны столбцы из этой таблицы.

  • 2
    У вас очень сильные способности понимания +1.
  • 0
    ХАХА спасибо @TimBiegeleisen, это от чтения ответов от вас и других гуру
Показать ещё 1 комментарий
1

Используйте DATEADD в предложении WHERE:

...

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

Вы также можете использовать аббревиатуру d или dd вместо дня.

  • 0
    Это также вернет пользователей, которые вошли, скажем, сегодня, что, я думаю, не предназначено. Кроме того, я бы не стал использовать сокращенные даты. Проверьте этот блог: sqlblog.org/2011/09/20/…
  • 0
    Спасибо мистер за ваш блог

Ещё вопросы

Сообщество Overcoder
Наверх
Меню