SQL中的日期范围

时间:2012-02-14 05:49:55

标签: mysql sql datetime

我在逻辑上遇到这个解决方案时遇到了麻烦。我有一个accounts表,其中包含日期时间trial_expiration_date列。我想使用此列返回所有已过期至少两周但不超过一个月的帐户。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

这样的事情应该有效。只需选择截止日期介于两周前和一个月前的所有记录。

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

答案 1 :(得分:1)

这个怎么样..

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

答案 2 :(得分: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