IF / ELSE関数またはCASE関数のいずれかを使用して、特定のコードを記述したいと考えています。DATEMODIFIEDという名前の列をチェックして、それが何時かを確認してもらいたいのですが。ですから、基本的には1800時から翌朝0600時までのデータを取得したいと思っています。私は使用するつもりでした
WHERE (Datemodified BETWEEN DATEADD(hour, - 12, GETDATE()) AND DATEADD(day, 0, GETDATE()))
が、クエリが実行されたときに12時間前に戻ります。1800時間を超えてデータをプルしたくありません。つまり、2200時間で実行されたとすると、4時間振り返って、特定のクエリを実行する必要があります。翌朝0200と言ったら、8時間だけ振り返ってほしい。私はIF/ELSEをいじっていて、失敗しました。
これが私が使用しているクエリですが、私が言ったように、それがいつ実行されたかに応じて、1800時間をはるかに超えて情報を引き出します。このクエリは、午前6時にのみ実行されるように設計されており、12時間のデータ(1800〜0600時間)を取得します。できれば助けてください!皆さんありがとう!!
SELECT Assignment
, Datemodified
, General
, IncNumber
, NextSteps
, PDCRStatus
, RootCause
, Status
, Summary
, Timings
, UserID
FROM Turnover
WHERE (Datemodified BETWEEN DATEADD(hour, - 12, GETDATE()) AND DATEADD(day, 0, GETDATE()))