あなたはDTSを懸念していないとUTCと純粋に作業した場合、クエリは次のようになります。
-- Time Offset calculation steps (shown for clarity)
SELECT GETDATE() AS LocalNow, GETUTCDATE() AS UTCNow,
DATEADD(HOUR, 4, GETUTCDATE()) AS UTC4Now, DATEADD(HOUR, 10, GETUTCDATE()) AS UTC10Now,
DATEADD(day, DATEDIFF(day, 0, DATEADD(HOUR, 4, GETUTCDATE())), 0) AS UTC4DayStart,
DATEADD(day, DATEDIFF(day, 0, DATEADD(HOUR, 4, GETUTCDATE())), 1) AS UTC4NextDayStart,
DATEADD(HOUR, 6, DATEADD(day, DATEDIFF(day, 0, DATEADD(HOUR, 4, GETUTCDATE())), 0)) AS UTC4DayStartInUTC10,
DATEADD(HOUR, 6, DATEADD(day, DATEDIFF(day, 0, DATEADD(HOUR, 4, GETUTCDATE())), 1)) AS UTC4NextDayStartInUTC10
-- Your query should become this
SELECT SENT_TIME, DATEADD(HOUR, -6, SENT_TIME) AS SENT_TIME_UTC4
FROM Table
WHERE DATEADD(HOUR, 6, DATEADD(day, DATEDIFF(day, 0, DATEADD(HOUR, 4, GETUTCDATE())), 0)) <= SENT_TIME
AND SENT_TIME < DATEADD(HOUR, 6, DATEADD(day, DATEDIFF(day, 0, DATEADD(HOUR, 4, GETUTCDATE())), 1))
注:GETDATE()
返しDTS調整された時間。
使用しているデータベースの種類 –
このようなタイムゾーンの変換は、DSTやさまざまなソースなどのデータのために間違っている可能性があります。 次のいずれかを実行することをおすすめします。(1)データをUTC(INSERT時間に変換)として使用するか、または(2)datetimeoffsetデータ型を使用して、タイムゾーンでデータを格納します。 –
いくつかのこと:テーブル構造とサンプルデータを提供してください。また、「正しく動作していない」ことを明確にしてください。 – dfundako