我正在尝试创建允许用户每天只投票一次的功能。为此,我在表中创建了ratingTimestamp
字段,在其中插入投票时间的当前时间戳值。
以及验证他每天只能投票一次的用户。我正在使用这个MySQL查询:
SELECT count( * ) AS votecount
FROM ratings AS e
WHERE e.userId =5
AND e.ratingTimestamp >= NOW( ) - INTERVAL 1
DAY
问题是这个查询在24小时的基础上给我votecount
,但我只希望它基于日期。
就像如果用户在2014年3月12日11:59:00 AM投票,他再次尝试在2014年3月13日4:00PM投票,他可以投票,但使用上面的查询是不可能的,因为它给了我投票计数1,因为它是从下午4:00开始计算的最后24小时。
我认为你应该这样写:
$sql="SELECT count( * ) AS votecount FROM ratings WHERE DATE(e.ratingTimestamp) = CURDATE()";
或者你可以尝试通过PHP
$sql="SELECT count( * ) AS votecount FROM ratings WHERE e.ratingTimestamp >= '".strtotime("today")."' AND e.ratingTimestamp < '".strtotime("tommorow")";
或者查看此链接
从MySQL中按当前日期检索记录