2017-11-13 12 views
1

クエリの一部であるため、日付範囲がイベントに基づいて動的に設定されている間に、結果をフィルタリングして設定した日付範囲内のもののみを表示したいとします。例えば動的日付の間

WHERE date d 
    BETWEEN '2017-01-01'   -- just a sample fixed date 
    AND DATEADD(D, CONTACT_DATE, -1) -- to show a day before Contact Date 

基本的にはちょうど実際の接触の日を除く、今年は別のCONTACT_DATEがあったかどうかを確認しようとしています。

私はこれを行うには他の方法があるかもしれないことは知っていますが、現在のロジックでクエリを調整できるかどうかは疑問でした。

ERROR:

Argument data type datetime is invalid for argument 2 of dateadd function.

+1

.... AND:

DATEADD(D, -1, CONTACT_DATE) 

はこちらのドキュメントを参照してください。 .. .. –

+0

申し訳ありません、それは私の最後からのタイプミスでした。私は間にあり、ちょうど 'AND'を含んでいた。 – kazzi

答えて

3

あなたはパラメータを混合しました。 構文は次のとおりです。

DATEADD (datepart , number , date) 

あなたはこれにそれを変更する必要があります:あなたは、単にBETWEEN `欠けている https://msdn.microsoft.com/de-de/library/ms186819(v=sql.120).aspx

+0

恥ずかしい。私のDATEDIFFと混合しました。私は0の結果を得ていますが、少なくともエラーはありません。私のロジックを改善するために得た。ありがとう – kazzi

2

それは次のようになります。

DATEADD(D, -1, CONTACT_DATE)