【问题标题】:How to fetch last 24 hour record using unix timestamps如何使用 unix 时间戳获取最近 24 小时的记录
【发布时间】:2026-02-18 21:10:01
【问题描述】:

我在 MySQL 中有以下两个表,我想获取评论的名称和数量。我该怎么做?

这是我的桌子un_users

id      wallet_address          username    
1       xxxxxxxxxxxxxx          abc
2       xxxxxxxxxxxxxx          xyz
3       xxxxxxxxxxxxxx          def
4       xxxxxxxxxxxxxx          jkl 

这是我的桌子coin_review

id      wallet_address      review                  review_creation_time
1       xxxxxxxxxxxxx       Lorem Ipsum1            1632812650  
2       xxxxxxxxxxxxx       Lorem Ipsum2            1632812211
3       xxxxxxxxxxxxx       Lorem Ipsum3            1632812650
4       xxxxxxxxxxxxx       Lorem Ipsum4            1632814574

我尝试使用以下代码但无法正常工作:

SELECT u.username, COUNT(c.Review) AS totalreview
FROM un_users u
LEFT JOIN coin_review c ON c.wallet_address = u.wallet_address
GROUP BY u.username
ORDER BY u.username

我想知道如何获得“过去 24 小时”的记录?

【问题讨论】:

  • 样本数据很好,但您还需要指定预期结果。
  • 错误信息很清楚。您需要将 u.id 和 u.username 添加到 GROUP BY,将这些列作为参数来设置函数。
  • @jarlh:让我更新问题,我错过了一列
  • @amit 你也想要 0 个计数吗(即 24 小时内有 0 个重复的用户)?
  • @SalmanA:不,我不想要

标签: mysql sql group-by unix-timestamp


【解决方案1】:

假设 review_creation_time 是一个 unix 时间戳,你可以使用UNIX_TIMESTAMP() 函数来比较苹果和苹果:

SELECT
    u.id, u.wallet_address, u.username,
    COUNT(c.id) AS review_count
FROM un_users u
JOIN coin_review c ON c.wallet_address = u.wallet_address
WHERE c.review_creation_time >  UNIX_TIMESTAMP(CURRENT_TIMESTAMP - INTERVAL 24 HOUR)
AND   c.review_creation_time <= UNIX_TIMESTAMP()
GROUP BY u.id

【讨论】:

  • 我更新了我的问题,请检查
  • 给我空结果
  • 它现在可以工作了,谢谢:)
最近更新 更多