我试图获取用户自每天开始以来登录的次数。
SELECT user_id
FROM users
WHERE TIMESTAMPDIFF(HOUR, user_login, NOW()) < 12
AND user_id = 1
此sql检查登录和当前时间之间的差异是错误的。 什么应该去NOW()来指示那天的午夜+ 1分钟并检查那天的登录?
答案 0 :(得分:1)
据我了解你的代码,问题是关于mySQL而不是PHP。使用
CURDATE()
而不是NOW()因为TIMESTAMPDIFF会将其用作'当日,00:00:00'
要结束当天的使用
CURDATE() + INTERVAL 1 DAY
所以你的where子句应该是
WHERE user_login BETWEEN CURDATE() AND CURDATE() + INTERVAL 1 DAY
如果你有DATE格式的user_login字段,否则你必须相应地转换它。