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