0

statusdateODBC 日付/時刻と呼ばれる列を持つ SQL Server テーブルがあります。2 つの日付 (開始日と終了日) の間の範囲を返すことができるよう
にする必要があります。SELECT query WHERE statusdate私はDATEDIFF自分のWHERE声明で使用するように言われました。これは正しいですか、構文は何ですか?

4

2 に答える 2

3

SQL Server 2008/2012と、dateその間で使用できるデータ型を使用している場合。

select *
from YourTable
where statusdate between @StartDate and @EndDate

を使用する場合は、を使用することdatetimeをお勧めします。代わりに、時間の部分に関係なくすべての値を取得するようにしてください。>=<

select *
from YourTable
where statusdate >= @StartDate and 
      statusdate < dateadd(day, 1, @EndDate)

アップデート

WHEREステートメントでDATEDIFFを使用するように言われました。これは正しいです

いいえ、これには使用しないでくださいdatediff

構文は何ですか?

ここで...しかし、それを使用しないでください。

select *
from YourTable
where datediff(day, statusdate, @StartDate) = 0 and
      datediff(day, statusdate, @EndDate) = 0
于 2012-05-02T18:27:14.847 に答える
0

なぜあなたはただやってみませんBETWEENか?:

SELECT *
FROM YourTable
WHERE statusdate BETWEEN StartDate AND EndDate
于 2012-05-02T17:58:35.590 に答える