日期减法

时间:2014-03-18 19:21:43

标签: sql postgresql

我想选择数据库中的所有用户,这些用户在创建帐户的那天将其帐户置于保留状态。用户只能暂停1个月,因此逻辑将选择用户....

day(hold_until - 1 month) = day(signup)

如何在SQL中实现这一目标?

3 个答案:

答案 0 :(得分:1)

尝试:

SELECT *
  FROM TheTable
 WHERE date(singup) = date(hold_until - INTERVAL '6 months')

答案 1 :(得分:1)

这取决于你正在使用的RDBMS,但假设这是PostgreSQL,你可以试试这个:

...where
day(hold_until - interval '1 month') = day(signup)

答案 2 :(得分:1)

假设您有timestamp列:

... WHERE (hold_until - interval '1 month')::date = singnup::date