2010-12-31 2 views
3

У меня есть запрос, и я не уверен, как ограничить пользователей датой последнего входа. я хочу только вернуть пользователей, которые вошли в систему на прошлой неделе. Вот мой вопрос:My SQL grab последние активные пользователи в течение одной недели

"SELECT `ID` FROM `Profiles` WHERE `DateLastLogin` < '[1WEEK]'" 

DateLastLogin - это поле даты.

+1

Что именно проблема? Запрос или как получить время в течение недели назад? –

+1

Как получить время в течение недели назад. Я думаю, что остальная часть запроса в порядке. – tmartin314

+1

Ну < should be > :) Какой тип DateLastLogin? Где вы хотите создать время? В SQL, стороне сервера? –

ответ

7
WHERE DateLastLogin > ADDDATE(NOW(), INTERVAL -1 WEEK) 
+0

+1 Это тоже правильно. –

+0

Почему бы не использовать DATESUB? –

2

В PHP вы можете использовать

strtotime('-1 week'); 

и которая выведет времени Unix от одной недели назад

4

Вы можете сделать это:

SELECT `ID` FROM `Profiles` WHERE `DateLastLogin` < DATE_SUB(NOW(), INTERVAL 7 DAY) 

Или

SELECT `ID` FROM `Profiles` WHERE `DateLastLogin` < DATE_SUB(NOW(), INTERVAL 1 WEEK) 
3
"SELECT `ID` FROM `Profiles` WHERE `DateLastLogin` < DATE_SUB(curdate(), INTERVAL 1 WEEK)" 

Возможно запрос вы ищете

"SELECT `ID` FROM `Profiles` WHERE `DateLastLogin` BETWEEN NOW() AND DATE_SUB(curdate(), INTERVAL 1 WEEK)" 
Смежные вопросы