2013-05-28 80 views
2

我试图限制用户每天只执行5个请求。要做到这一点,我指望的使用下面的查询在同一天已经执行的请求数:查询限制每天的请求数

SELECT COUNT(*) FROM table_name WHERE date_field >= CURDATE() 

此之前给了我的请求已经执行天。我需要的仅仅是今天在课程中进行的请求数量。请任何想法吗?

+0

什么数据类型是DATE_FIELD? – B8vrede

+0

带默认current_timestamp的时间戳谢谢 – Lomse

+1

'date_field'中的数据是什么样的?如果它是有效的MySQL数据字段,那么你的查询应该工作。 –

回答

2
SELECT COUNT(*) FROM table_name WHERE date_field >= CURDATE() 

...将返回的行数,其中DATE_FIELD大于或等于今天,如果DATE_FIELD是一个日期数据类型。也就是说,确保时间不是组件,但它肯定不能返回“之前已经执行的请求”,除非date_field列中存储的值存在错误。

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

1

尝试:

SELECT COUNT(*) FROM table_name WHERE date(date_field) = CURDATE() 

假设date_field是时间戳/日期时间字段,date()将只提取日期部分,并评估其对当前日期。你可以阅读更多关于它的MySQL's Documentation