自上次插入行以来获取分钟数

时间:2013-08-29 16:35:36

标签: mysql sql

我正在尝试阻止我的评论系统发送垃圾邮件,并阻止用户过快发布多条评论,并希望评论帖之间有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'分钟/秒,直到再次发布。分钟和秒钟将是一个巨大的奖金。

任何帮助表示感谢。

2 个答案:

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