SQL max date相关问题

时间:2016-10-25 07:07:31

标签: mysql sql date max intervals

我在SQL中遇到了一些max(date)问题。 基本上问题是我必须检查id输入的最新日期是否超过1天,然后返回该日期。

   id|  user_id|           send_date
   8 |      90 | 2016-10-21 14:31:14
| 10 |      90 | 2016-10-25 09:56:28
| 11 |      18 | 2016-10-22 09:56:28
| 12 |      19 | 2016-10-21 09:56:28
| 13 |      19 | 2016-10-23 09:56:28
| 13 |      20 | 2016-10-25 09:56:28

这是一个更长的SQL的一部分(只是我遇到问题的部分):

SELECT max(h.send_date) as lastSent 
FROM history h 
WHERE (h.send_date < NOW() - INTERVAL 1 DAY);

现在发生的情况是,不是选择最近输入日期超过1天的行,而是选择最新的超过1天的行,即使表中有更新的条目。

有没有人知道如何更改它,以便SQL只返回最新的日期24h 最新(用户)在表格中(在示例中,它会不得不归还,因为有一个不到24小时的入口)?

稍微编辑了表格示例。这就是我需要得到的结果(因为2016-10-25 09:56:28,user_ids 90和20被忽略):

  18 |  2016-10-22 09:56:28
  19 |  2016-10-23 09:56:28

1 个答案:

答案 0 :(得分:3)

对于聚合函数,你应该使用having而不是where

SELECT max(h.send_date) as lastSent 
FROM history h 
having  max(h.send_date ) < DATE_SUB(NOW() ,INTERVAL 1 DAY) ;