пользователь вошел в систему в течение периода времени

0

Я пытаюсь выяснить, как найти пользователя, который был зарегистрирован в течение определенного периода времени?

Случай:
Таблица примеров данных входа в систему

user,time_from,time_to
user1,19:10,19:20
user2,10:00,22:00
user3,18:00,18:59

Я хочу получить, если пользователь1 и user2 были в сети между 19:00 и 20:00, а user3 - нет.

В этом случае данные хранятся в mysql, и я использую php для вывода данных.

Предложения?

  • 2
    что ты уже испробовал? Операторы SQL? Циклы PHP? Что-нибудь? Пожалуйста, дайте нам знать с некоторым кодом. Эй, а также, в каком формате поля данных таблицы? DATETIME, INT, что?
Теги:
time

1 ответ

0

Чтобы найти всех пользователей, зарегистрированных в определенный период времени, вам нужно проверить, что time_from меньше конца периода, а time_to больше, чем начало.

Простой пример использования PDO:

$sql = 'SELECT user FROM login_data WHERE time_from <= ? AND time_to >= ? GROUP BY user';
$stmt = $pdo->prepare($sql);
$stmt->execute([$end_time, $start_time]);
$users = $stmt->fetchAll();

Это не приведет к тому, что вы не вошли в систему в указанный период времени, но теоретически можете присоединиться к результатам в таблице пользователей, чтобы найти это.

  • 0
    Мне известно о предложенном вами решении. К сожалению, это не включает user2, как указано в примере. Достаточно легко найти, кто зашел в онлайн. Сложно пытаться привлечь пользователей, которые находятся в сети, в установленные сроки.
  • 0
    Это абсолютно включает в себя user2. 10:00 <20:00 и 22:00> 19:00.

Ещё вопросы

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