我有一个字段transaction_date是varchar2,我想在该字段上进行搜索,并获得过去6个月不活跃的用户的user_id我尝试了下面的查询,但它没有给出正确的答案,我的查询是:
transaction_date
select distinct(user_id) from DAILYBOOKINGREPORT2 where TRANSACTION_DATE NOT BETWEEN to_date('31-MAY-2017') AND to_date('31-DEC-2016');
olmpazwi1#
使用GROUP BY和HAVING查找最大交易日期超过6个月的用户:
GROUP BY
HAVING
SELECT user_id FROM DAILYBOOKINGREPORT2 GROUP BY user_id HAVING MAX( TRANSACTION_DATE ) < ADD_MONTHS( SYSDATE, -6 );
57hvy0tb2#
您希望使用DATEADD函数
SELECT DISTINCT(user_id) FROM `DAILYBOOKINGREPORT2` WHERE `TRANSACTION_DATE` <= DATEADD(mm, -6, GETDATE())
更多信息:https://www.w3schools.com/sql/func_dateadd.asp
2条答案
按热度按时间olmpazwi1#
使用
GROUP BY
和HAVING
查找最大交易日期超过6个月的用户:57hvy0tb2#
您希望使用DATEADD函数
更多信息:https://www.w3schools.com/sql/func_dateadd.asp