sql >> データベース >  >> RDS >> Sqlserver

SQL Server(T-SQL)のdatetime2値にタイムゾーンオフセットを追加する

    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時間を意味する)のタイムゾーンオフセットになりました。

    また、タイムゾーンオフセットを分単位で指定する場合は、整数値として指定することに注意してください。一方、時間単位で指定する場合は、文字列として指定する必要があります。

    これを行う方法の例については、日付を別のタイムゾーンに変換するを参照してください。


    1. 12.2のOracleE-BusinessSuiteアーキテクチャ

    2. OracleSqlDeveloperの文字列リテラルが長すぎるエラー

    3. mac os x10.8.2でpostgresql9.2のデフォルトユーザー(通常は「postgres」)のパスワードをリセットするにはどうすればよいですか?

    4. SQLスキーマのみをバックアップしますか?