所以我有一个mysql查询,它曾经按预期工作,但现在我认为发生了一些事情,它似乎不再起作用了。
我拥有2张我想加入的牌桌。 "
用户
和
日志
我想要"用户"中所有用户ID(UID)的列表今天已登录不的表格。所以我使用了这个查询。
SELECT users.UID
FROM users
LEFT JOIN logs
ON users.UID = logs.UID
AND DATE(logs.SCANTIME )=DATE(SYSDATE())
WHERE logs.UID is null
上面的查询过去有效,但现在返回的是一个不应该在那里的UID列表。
如果我今天查看日志,我可以看到多行,为了节省空间,我省略了除了一行之外的所有行。
mysql> SELECT UID, SCANTIME FROM logs WHERE DATE(scantime)=DATE(SYSDATE());
+------------+---------------------+
| UID | SCANTIME |
+------------+---------------------+
.............
| AA9B351B | 2017-08-02 06:13:21 |
.............
+------------+---------------------+
63 rows in set (0.00 sec)
所以这个家伙AA9B351B今天已经清楚登录了。然而,当我运行上面的查询时,他出现了。感谢您的回复
答案 0 :(得分:0)
服务器时间可能已变得不正确,因此SYSDATE返回错误的值。检查系统时间并运行SQL查询,将SYSDATE函数替换为文字(仅测试)。此检查也与时区没有变化有关。如果服务器时间错误则重置。