MySQL - 带有INT的Comparsion VARCHAR

时间:2013-05-20 13:39:31

标签: mysql int varchar

在我的网站上用户注册日期存储为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

但它仍然无法正常工作......我如何计算今天注册的用户?

2 个答案:

答案 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。