2012-02-01 16 views
0

こんにちは私は日付の間隔に基づいて結果を返すクエリを作成するために助けが必要ですが、私は正しく動作するように取得することはできません。日付のintevalsを持つsqlクエリ

... 
where `invoiceExpDate` >= date_add(now(), INTERVAL - 7 DAY) 

:私はこのwhere句を使用して最初の区間については

day -1 to -7 */from yesterday and -7 days */  
day -8 to -14 */the date is between -8 and -14 days from today  

:私は私の歴史的な時間内にある日付を持つレコードを与える結果を達成したいと思います

私は今日のレコードを私に与えないために、これをどのように変更できますか?

私が使っ秒間隔の

:私はそれらを動作させることはできません

... 
where datediff(invoiceExpDate,now())<= 14 
AND datediff(invoiceExpDate,now())> 7 
AND `invoiceExpDate` > now() 

。私が望むものを返すために正しいwhere節を教えてください。

おかげ

+0

何DBMS ?日付関数は、プラットフォーム間の違いが知られています。 –

+0

クエリ条件が意味をなさない(完全に)。あなたはx日前の範囲のものを探していますが、2番目の間隔では請求書のexp date> now()を探しています。それは常に空のセットを返します...すべてのものは、今よりも大きい古い有効期限を持ちます。 – DRapp

答えて

1

私はあなたが(DATE_ADD組み合わせ)と第二のための同様のパターン

... 
WHERE `invoiceExpDate` BETWEEN 
    date_add(now(), INTERVAL - 7 DAY) AND 
    date_add(now(), INTERVAL - 1 DAY) 

あなたの最初の句については

BETWEENことができると思います。 DATEADD BETWEEN

+0

はいそれは働いた。あなたがそれをやる方法を知っているとき、とても簡単です:-)ありがとう。 –

+0

他人に知らせるように正解を記入することを忘れないでください:) – Bort

0

LOGDATE(DD、-7、GETDATE())AND DATEADD(DD、-1、GETDATE())

関連する問題