我正在尝试阻止我的评论系统发送垃圾邮件,并阻止用户过快发布多条评论,并希望评论帖之间有5分钟的延迟。当用户发布消息时,我想运行一个快速查询,该查询找出自用户上次发布以来在特定文章上已经过了多少分钟。
这是我的表数据:
[blog_comments]
comment_id | article_id | commenter_id | comment | posted
-----------|------------|--------------|-------------------|---------------------
1 | 1023 | 2322 | blah blah blah | 2013-08-29 17:27:03
我需要找出(现在和已发布)之间的差异,但使用UTC_TIMESTAMP()。
我正在查看DATEDIFF和TIMEDIFF,但遇到了麻烦,因为TIMEDIFF要求时间不是日期,DATEDIFF会以天为单位返回。
这是我的尝试:
SELECT DATEDIFF(UTC_TIMESTAMP(), posted)
FROM blog_comments
WHERE article_id = 1023 AND commenter_id = 2322
但我怎么得到分钟?我想要这个,所以我可以向刚刚发布评论的用户报告,等待另一个'X'分钟/秒,直到再次发布。分钟和秒钟将是一个巨大的奖金。
任何帮助表示感谢。
答案 0 :(得分:1)
尝试
SELECT TIMESTAMPDIFF(MINUTE,posted,Now()) AS minutes_since_post
FROM blog_comments
WHERE article_id = 1023 AND commenter_id = 2322
答案 1 :(得分:0)
DATEDIFF
将返回天数差异。请改为使用TIMEDIFF
函数。