如何吸引过去6个月内不活跃的用户

时间:2017-06-21 09:11:46

标签: sql oracle

我有一个字段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');

2 个答案:

答案 0 :(得分:1)

使用GROUP BYHAVING查找最长交易日期超过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())

更多信息:https://www.w3schools.com/sql/func_dateadd.asp