2016-05-09 2 views
-4

У меня есть EmailID_tbl, у которого есть адрес электронной почты пользователей, у меня есть запрос «удалить электронные письма с EmailID_tbl, если последняя дата входа для пользователь находится в течение последних 4 месяцев ».Мне нужен запрос для удаления значения в таблице, если значение старше 4 месяцев, пожалуйста, просмотрите детали.

+1

Какие детали вы можете посмотреть? – flyingmeatball

+0

Должен ли этот запрос сказать «удалить электронную почту с EmailID_tbl, если последняя дата входа для пользователя старше 4 месяцев»? Как бы то ни было, это указывает на то, что вы оставите пользователей, которые не вошли в систему, но вы удалите активных пользователей – quest4truth

+0

У меня есть EmailID_tbl, у которого есть адрес электронной почты пользователей, у меня есть запрос «удалить электронные письма с EmailID_tbl, если последняя дата входа для пользователя в течение последних 4 месяцев ». как удалить электронные письма, которые старше 4 месяцев в EmailID_tbl? –

ответ

1

Если предположить, что они находятся в той же таблице, вы могли бы просто использовать ИНЕКЕ, чтобы определить, что должно быть удалено с помощью функции DATEADD() вычесть соответствующее количество месяцев от GETDATE(), которая позволила бы получить текущую дату:

-- This would delete every record in your table with LastLoginDates 
DELETE 
    FROM EmailID_tbl 
WHERE LastLoginDate < DATEADD(month,-4,GETDATE()) 
+0

Я думаю, вы хотите использовать GETDATE. СЕЙЧАС не является функцией t-sql. –

+0

Да, это так. Путайте немного MySQL с SQL Server. –

1

Вот запрос, который будет делать это:

DELETE 
FROM EmailID_tbl 
WHERE LastLoginDate <= DATEADD(mm, -4, GETDATE()) 

Изменение LastLoginDate на фактическое имя в вашей таблице, которая указывает на дату последнего входа в систему, и изменить <= - >=, если вы действительно хотите удалить более активных пользователей, а не более неактивных пользователей.