SQL Serverでは、TODATETIMEOFFSET()
を使用できます。 datetimeoffsetを返す関数 datetime2から変換された値 表現。 2つの引数を受け入れます。日付、およびその日付に適用するオフセット。
以下は使用例です。
構文
TODATETIMEOFFSET()
の構文 このようになります:
TODATETIMEOFFSET ( expression , time_zone )
expression
の場所 datetime2に解決される式です 値、およびtime_zone
その式に適用するタイムゾーン(日付)です。
タイムゾーンは分または時間で指定できます。数分で指定する場合は、整数を使用してください(例:-120
)、それ以外の場合は数時間で提供するには、文字列を使用します(例:'+04.00'
)。タイムゾーンの範囲は+14〜-14(時間)です。
また、指定した日付は、指定したタイムゾーンの現地時間で解釈されます。
例1
使用法の基本的な例は次のとおりです。
SELECT TODATETIMEOFFSET( '2112-01-01 00:00:00', '+08:00' ) AS Result;
結果:
Result ---------------------------------- 2112-01-01 00:00:00.0000000 +08:00
例2–負の値
これは前の例と同じですが、代わりに負の値を使用する点が異なります。
SELECT TODATETIMEOFFSET( '2112-01-01 00:00:00', '-08:00' ) AS Result;
結果:
Result ---------------------------------- 2112-01-01 00:00:00.0000000 -08:00
例3–datetime2変数の使用
この例では、 datetime2を使用して変数を明示的に設定しています。 値を入力してから、TODATETIMEOFFSET()
を適用します その値に合わせて、値を比較します:
DECLARE @date datetime2 = '2112-01-01 00:00:00.0000000'; SELECT @date AS 'Original Date', TODATETIMEOFFSET( @date, '+08:00' ) AS '+08:00';
結果:
Original Date +08:00 --------------------------- ---------------------------------- 2112-01-01 00:00:00.0000000 2112-01-01 00:00:00.0000000 +08:00
この例(および前の例)でわかるように、元の日付の値には日時がありません オフセット情報( datetime2 であるため) 値)、ただし、TODATETIMEOFFSET()
を実行すると 関数の場合、 datetimeoffsetになります データ型。
例4–datetimeoffset変数の使用
これは前の例と似ていますが、元の日付が datetimeoffsetとして設定されている点が異なります。 値:
DECLARE @date datetimeoffset = '2112-01-01 00:00:00.0000000 +04:00'; SELECT @date AS 'Original Date', TODATETIMEOFFSET( @date, '+08:00' ) AS '+08:00';
結果:
Original Date +08:00 ---------------------------------- ---------------------------------- 2112-01-01 00:00:00.0000000 +04:00 2112-01-01 00:00:00.0000000 +08:00
例5–現在の日付/時刻の使用
この例では、SYSDATETIMEOFFSET()
を渡します。 日付式として機能します。この関数は、SQLServerインスタンスを実行しているコンピューターの現在の日付/時刻を生成します。
SELECT SYSDATETIMEOFFSET() AS 'Current Date', TODATETIMEOFFSET( SYSDATETIMEOFFSET(), '+08:00' ) AS '+08:00';
結果:
Current Date +08:00 ---------------------------------- ---------------------------------- 2018-06-06 08:50:57.8382284 +10:00 2018-06-06 08:50:57.8382284 +08:00
例6–タイムゾーンオフセットを整数として提供する
前述のように、タイムゾーンオフセットを文字列ではなく整数として指定することもできます。
SELECT TODATETIMEOFFSET( '2112-01-01 00:00:00', -180 ) AS Result;
結果:
Result ---------------------------------- 2112-01-01 00:00:00.0000000 -03:00