MSSQL サーバーでホストされているデータベースのテーブルに対してクエリを実行する必要があります。
クエリは次のとおりです。
select *
from tableA
where createdOn between @startDate and @endDate
変数 @startDate および @endDate の型は datetime です。@endDate が現在の日付に等しく、@startDate が 1 か月前の日付に等しい場合、次のいずれかのクエリを作成できると考えました。
declare @startDate datetime
declare @endDate datetime
set @startDate = DATEADD(month,-1,GETDATE())
set @endDate = GETDATE()
select *
from tableA
where createdOn between @startDate and @endDate
またはとして
select *
from tableA
where createdOn between DATEADD(month,-1,GETDATE()) and GETDATE()
2 番目のクエリでは where 句で関数を呼び出すため、最初のクエリは 2 番目のクエリよりも高速であると考えました。クエリの両方のバージョンを作成し、それらも実行しました。ただし、パフォーマンスに大きな違いはありませんでした。
なぜ変化が見られなかったのか、誰かが説明してくれませんか。おそらく、最初のクエリは 2 番目のクエリよりも高速である必要があるという考えは誤りでした。私に知らせてください、IDはそうです、なぜ間違っているのですか。
助けてくれてありがとう。