我有会话表包含这些记录:
+---------+----------------+-----------+------------------------+
| id | session | ip | login_time |
+---------+----------------+-----------+------------------------+
| 1 | fjdjetje5e | 127.0.0.1 | 2021-01-24 10:02:06 |
| 2 | rgrdd | 127.0.0.1 | 2021-01-24 10:10:01 |
| 3 | hèyth | 127.0.0.1 | 2021-01-24 10:04:00 |
| 4 | rwytw4364 | 127.0.0.1 | 2021-01-24 16:08:59 |
| 5 | iliiu | 127.0.0.1 | 2021-01-24 16:03:56 |
| 6 | reuretyre | 127.0.0.1 | 2021-01-24 16:06:53 |
| 7 | rthrtrt | 127.0.0.1 | 2021-01-24 16:05:51 |
| 8 | 66735 | 127.0.0.1 | 2021-01-24 17:09:49 |
| 9 | ooluh | 127.0.0.1 | 2021-01-24 18:07:46 |
| 10 | sdxxs | 127.0.0.1 | 2021-01-24 18:11:43 |
+---------+----------------+-----------+------------------------+
我想从最后插入的记录中获取 1 小时内的所有记录:
//this what i expected
| 9 | ooluh | 127.0.0.1 | 2021-01-24 18:07:46 |
| 10 | sdxxs | 127.0.0.1 | 2021-01-24 18:11:43 |
这是我尝试的
SELECT *
FROM session
WHERE login_time >= DATE_SUB(now(),INTERVAL 1 HOUR)
它仅在我的电脑时间大约为 2021-01-24 18:11:43
答案 0 :(得分:0)
SELECT *
FROM session
WHERE login_time >= (select DATE_SUB(max(login_time),INTERVAL 1 HOUR) from session);
你可以使用上面类似的东西。