プロジェクトの 1 つで、SQL クエリに問題が 1 つあります。実際には、3 つのシフトがあるテーブルで 1 つの DateTime 列をチェックする必要があります。つまり、それぞれのシフトに該当する RegisteredDateTime 列に基づいてレコードを取得する必要があります。次のシフト タイミングがあり、シフトは 24 時間形式になります。
Shift1 : 07:00:00-12:00:00
Shift2 : 12:00:00-22:00:00
Shift3 : 22:00:00-07:00:00
私の問題は、シフト 1 とシフト 2 でレコードを正しく取得していることですが、レコードがシフト 3 にあるわけではありません。これを解決するために、私は回っています。次の検索クエリを使用して、すべてのシフトのレコードを取得しています
SELECT RequestNumber
FROM Table
WHERE (CONVERT(Time, RegisteredDateTime) BETWEEN '" & Shift1.Split("-")(0) &"' AND ' " & Shift1.Split("-")(1) & "')
上記のクエリは Shift1 に使用されます。同様に、Shift2 と Shift3 もチェックしています。
こんにちは、最終的に@ AnandPhadkeによって与えられたアイデアが私のために働いた、それは私が使用している最終的なクエリです
Dim StartNumber As Integer = Convert.ToInt32(Shft3Arr(1).Split(":")(0))
Dim EndShift As String = (StartNumber - 1) & ":59:59"
query += "(CONVERT(Time, Complaints.RegisteredDateTime) >= '" + Shft3Arr(0) + "') OR (CONVERT
(Time, DATEADD(DD, 1, Complaints.RegisteredDateTime)) <= '" + EndShift + "')"