UTC で日付を保存する列を持つテーブルがあります。それを選択するときは、ユーザーが保存した TimezoneOffset (整数) に基づいて現地時間に変換する必要があります。現在、次のように UTC から現地時間に変換する関数があります。
FUNCTION [dbo].[ConvertUTCTimeToLocal]
(
@UserTimezoneOffset int,
@DateToConvert Datetime
)
RETURNS Datetime
AS
BEGIN
-- Declare the return variable here
DECLARE @LocalTime Datetime
--Convert start time and end time to UTC time
SET @LocalTime = DATEADD(hh, @UserTimezoneOffset, @DateToConvert)
RETURN @LocalTime
END
そしてそれを次のように使用します
Select dbo.ConvertUTCTimeToLocal(@UserTimezoneOffset, myTable.CollectedDate)
From myTable
問題は、テーブルが大きく、パフォーマンスに大きな問題が発生することです。これを処理するより良い方法はありますか?
ありがとうございました!