SQL让用户在范围内

时间:2011-06-23 16:36:31

标签: sql database range field

我有一个数据库存储用户订阅和取消订阅服务的时间。我想要做的是看看谁每个月取消订阅,然后看看有多少人在订阅后的30天内取消订阅。我有两个字段DateJoined_DateUnsub_,它们都返回smalldatetime。如何使用DateJoinedDateUnsub找到这些人?我知道我必须做一些计算,如果我不使用SQL,我可以轻松地做到这一点 - 任何建议?

3 个答案:

答案 0 :(得分:2)

SELECT *
FROM UserTable
WHERE DATEDIFF(day, DateJoined, DateUnSub) <= 30

http://msdn.microsoft.com/en-us/library/ms189794.aspx

答案 1 :(得分:1)

您使用的是什么DBMS?对于MySQL:

select * from table where DATEDIFF(DateUnsub_, DateJoined_) <= 30

答案 2 :(得分:1)

至于获取每个月取消订阅的用户数量,您可以GROUP BY DATEPART(year, DateUnsub_), DATEPART(month, DateUnsub_)或改为限制这些日期部分以获取用户列表。

http://msdn.microsoft.com/en-us/library/ms174420.aspx