SQL Serverでは、TODATETIMEOFFSET()
関数は、 datetimeoffsetを返すように特別に設計されています datetime2からの値 価値。
datetime2 データ型は実際にはタイムゾーンオフセットとdatetimeoffsetをサポートしていません オフセット、TODATETIMEOFFSET()
が含まれている必要があります 関数を使用すると、使用するタイムゾーンオフセットを指定できます。
この記事では、デモンストレーションの例をいくつか紹介します。
基本的な使用法
TODATETIMEOFFSET()
の一般的な使用例を次に示します。 働き。
DECLARE @dt datetime2 = '2020-12-20 17:33:59.8900000';
SELECT
@dt AS [datetime2],
TODATETIMEOFFSET(@dt, '+07:00') AS [datetimeoffset];
結果(垂直出力を使用):
datetime2 | 2020-12-20 17:33:59.8900000 datetimeoffset | 2020-12-20 17:33:59.8900000 +07:00
この場合、元の datetime2 を返します 値と結果のdatetimeoffset 価値。
その結果、指定されたタイムゾーンオフセットが追加されていることを除いて、元の日付/時刻は同じになります。
範囲は+14〜-14(時間単位)です。式は、指定されたタイムゾーンの現地時間で解釈されます。
タイムゾーンオフセットを分単位で指定
または、タイムゾーンオフセットを分単位で指定することもできます。これが例です。
DECLARE @dt datetime2 = '2020-12-20 17:33:59.8900000';
SELECT
@dt AS [datetime2],
TODATETIMEOFFSET(@dt, +120) AS [datetimeoffset];
結果(垂直出力を使用):
datetime2 | 2020-12-20 17:33:59.8900000 datetimeoffset | 2020-12-20 17:33:59.8900000 +02:00
この場合、2時間と同じ+120分を指定しました。したがって、結果は+02:00(プラス2時間を意味する)のタイムゾーンオフセットになりました。
また、タイムゾーンオフセットを分単位で指定する場合は、整数値として指定することに注意してください。一方、時間単位で指定する場合は、文字列として指定する必要があります。
これを行う方法の例については、日付を別のタイムゾーンに変換するを参照してください。