2012-02-14 38 views
0

このソリューションを論理的に考え出すのに問題があります。私は、trial_expiration_dateカラムのaccountsテーブルを持っています。私は、この列を使用して、少なくとも2週間は有効期限切れになっているが、1ヶ月以内にすべてのアカウントを返却したいと考えています。どうすればこれを達成できますか?このような何かがどのように動作するかをこの程度..SQLの日付範囲

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

2週間は現在の日付から過去14日を意味しますか? –

答えて

1

。有効期限が2週間前から1ヶ月前のすべてのレコードを選択するだけです。

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

あなたはそれが唯一の唯一のdate部品を計算し、timeを考慮していない

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 

を行うことができます。