mysql如何写一句sql查询近三个月内,最后一次登陆时间距今超过14天的用户ID

用户ID字段为uuid

最后一次登录时间字段为utime

select a.uuid from table_name where ctime BETWEEN date_add(now(), interval -3 MONTH) AND now() GROUP BY uuid HAVING datediff(now(),max(ctime))>14

首先分析一下这个SQL的需求,首先是要查询三个月以内登录的用户,其次是登录时间距今超过14天,也就是14天之前登录过的用户,整个条件就是登录时间小于3个月,大于14天,SQL语句为:
select uuid from 登录时间表 where utime < 当前时间 - 14天 and utime > 当前时间 - 3个月

select uuid from table_name where create_time >= DATE_SUB(CURDATE(),INTERVAL 3 MONTH) AND DATEDIFF(CURDATE(),DATE(max(utime))); #这样就行了,因为用户ID是唯一性的,所以不必分组,数据库用户表的记录创建时间绝对不会超过当前时间,所以也不必加小于等于现在时间