在SQL中分组时的日期之间的差异

时间:2010-03-24 15:53:20

标签: sql sql-server database

我有一张包含user_id和date_of_purchase的购买表。

我需要能够选择在12个月内完成2次购买的所有用户。日期可以是任何时间点,只要它们相隔不到12个月。

e.g。

user_id      date_of_purchase
123          01/Jan/2010
124          01/Aug/2010
123          01/Feb/2010
124          05/Aug/2008

在这个例子中,我想要user_id 123

2 个答案:

答案 0 :(得分:1)

select distinct user_id 
from MyTable t1
inner join MyTable t2 on t1.user_id = t2.user_id 
where t1.date_of_purchase - t2.date_of_purchase <= 365

注意:这不会处理闰年。

答案 1 :(得分:0)

在Oracle中,有一个DATE_DIFF函数 - 我认为MS等价物没有下划线(DATEDIFF)。