2012-02-14 120 views
0

我很难从逻辑上提出此解决方案。我有一个accounts表与日期时间trial_expiration_date列。我希望使用此列返回所有已过期至少两周但不超过一个月的帐户。我怎样才能做到这一点?SQL中的日期范围

+0

两周是指从当前日期起过去14天? – 2012-02-14 05:52:27

回答

2

这样的事情应该工作。只需选择截止日期在两周前和一个月前之间的所有记录。

select * 
from accounts 
where trial_expiration_date between DATE_SUB(curdate(), INTERVAL 1 MONTH) 
    and DATE_SUB(curdate(), INTERVAL 2 WEEK) 
1

这个怎么样..

select * 
from TABLE 
where trial_expiration_date between dateadd(day,-14,getdate()) and getdate() 
0

你可以做

select * 
from t 
where 
    datediff(date_add(trial_expiration_date, interval 2 week), now()) < 0 
    and 
    datediff(date_add(trial_expiration_date, interval 1 month), now()) > 0 

只只计算date部分,不考虑time