在我的网站上用户注册日期存储为varchar(20)列中的时间戳。我想算一下今天注册的用户数量,我写的查询:
SELECT COUNT(*) as count FROM `users` WHERE `user_group` = 7 AND `reg_date > 1368993600
1368993600 - 今天凌晨0点。此查询返回所有用户的计数,而不是今天注册的计数。我编辑了查询:
SELECT COUNT(*) as count FROM `users` WHERE `user_group` = 7 AND CAST(`reg_date` AS SIGNED) > 1368993600
但它仍然无法正常工作......我如何计算今天注册的用户?
答案 0 :(得分:1)
SELECT COUNT(*) as count
FROM `users`
WHERE `user_group` = 7
AND `reg_date` - timestamp(curdate()) >= 0
答案 1 :(得分:1)
您正在扣除错误,而您的错误则在其他地方。 See this SQL Fiddle,使用您提及的相同数据结构并使用不带CAST
的第一个查询,您将看到它正常工作。仅返回3行,且值大于1368993600。