0

我正在尝试防止在我的评论系统上发送垃圾邮件,并阻止用户过快发布多个评论,并希望评论帖子之间有 5 分钟的延迟。当用户发布消息时,我想运行一个快速查询,以找出自用户上次在特定文章上发布以来已经过去了多少分钟。

这是我的表格数据:

[博客评论]

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”分钟/秒,直到再次发布。分钟和秒将是一个巨大的奖励。

任何帮助表示赞赏。

4

2 回答 2

1

尝试

SELECT TIMESTAMPDIFF(MINUTE,posted,Now()) AS minutes_since_post
FROM blog_comments
WHERE article_id = 1023 AND commenter_id = 2322
于 2013-08-29T16:39:25.117 回答
0

DATEDIFF将返回天数的差异。请尝试使用该TIMEDIFF功能。

于 2013-08-29T16:38:55.847 回答