我有一个字段transaction_date
,它是varchar2,我想在该字段上搜索并获取过去6个月内未激活的用户的user_id
我尝试了以下查询,但没有给出正确的答案,我的查询是:
select distinct(user_id)
from DAILYBOOKINGREPORT2
where TRANSACTION_DATE NOT BETWEEN to_date('31-MAY-2017') AND to_date('31-DEC-2016');
答案 0 :(得分:1)
使用GROUP BY
和HAVING
查找最长交易日期超过6个月的用户:
SELECT user_id
FROM DAILYBOOKINGREPORT2
GROUP BY user_id
HAVING MAX( TRANSACTION_DATE ) < ADD_MONTHS( SYSDATE, -6 );
答案 1 :(得分:-1)
您想要使用DATEADD函数
SELECT
DISTINCT(user_id)
FROM `DAILYBOOKINGREPORT2`
WHERE `TRANSACTION_DATE` <= DATEADD(mm, -6, GETDATE())