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

SWITCHOFFSET()SQLServerの例

    SQL Serverでは、SWITCHOFFSET() 関数を使用して、 datetimeoffsetを返すことができます 保存されたタイムゾーンオフセットから指定された新しいタイムゾーンオフセットに変更された値。

    以下は、この関数がどのように機能するかの例です。

    構文

    まず、構文は次のとおりです。

    SWITCHOFFSET ( DATETIMEOFFSET, time_zone )

    DATETIMEOFFSETの場所 datetimeoffset(n)に解決できる式です 値、およびtime_zone は、[+ |-] TZH:TZMの形式の文字列、またはタイムゾーンオフセットを表す符号付き整数(分単位)であり、夏時間に対応し、調整されていると見なされます。

    結果はdatetimeoffsetとして返されます DATETIMEOFFSETの分数精度で 引数。

    例1

    使用法の基本的な例は次のとおりです。

    SELECT SWITCHOFFSET( '2112-01-01', '+08:00' ) AS Result;
    

    結果:

    Result
    ----------------------------------
    2112-01-01 08:00:00.0000000 +08:00
    

    例2

    この例では、負の値を使用しています:

    SELECT SWITCHOFFSET( '2112-01-01', '-08:00' ) AS Result;
    

    結果:

    Result
    ----------------------------------
    2111-12-31 16:00:00.0000000 -08:00
    

    例4

    この例では、変数を宣言し、 datetimeoffsetを使用して変数に日付を割り当てます。 データ・タイプ。次に、SWITCHOFFSET()を適用します その日付まで、元の日付と比較します。

    DECLARE @date datetimeoffset = '2112-01-01 00:00:00.0000000 +04:00';
    SELECT 
        @date AS 'Original Date',
        SWITCHOFFSET( @date, '+08:00' ) AS '+08:00';
    

    結果:

    Original Date                      +08:00
    ---------------------------------- ----------------------------------
    2112-01-01 00:00:00.0000000 +04:00 2112-01-01 04:00:00.0000000 +08:00
    

    例5

    ここでは、前の例と同じことを行いますが、SYSDATETIMEOFFSET()を使用します。 現在の日付/時刻とオフセットを生成する関数。

    SELECT 
        SYSDATETIMEOFFSET() AS 'Current Date',
        SWITCHOFFSET( SYSDATETIMEOFFSET(), '+08:00' ) AS '+08:00';
    

    結果:

    Current Date                       +08:00
    ---------------------------------- ----------------------------------
    2018-06-05 17:05:36.9415309 +10:00 2018-06-05 15:05:36.9415309 +08:00
    

    例6

    この例は、負の値を追加することを除いて、前の例と同じです。

    SELECT 
        SYSDATETIMEOFFSET() AS 'Current Date',
        SWITCHOFFSET( SYSDATETIMEOFFSET(), '-08:00' ) AS '-08:00';
    

    結果:

    Current Date                       -08:00
    ---------------------------------- ----------------------------------
    2018-06-05 17:12:07.1122856 +10:00 2018-06-04 23:12:07.1122856 -08:00
    

    例7

    文字列の代わりに整数としてタイムゾーンオフセットを指定することもできます:

    SELECT SWITCHOFFSET( '2112-01-01', -180 ) AS Result;
    

    結果:

    Result
    ----------------------------------
    2111-12-31 21:00:00.0000000 -03:00
    

    1. MySQLまたはMariaDBデータベースをSQLインジェクションから保護する方法:パート2

    2. SQLServerに対するVMwareCPUホットプラグvNUMAの影響

    3. 管理者でデータベースを管理する方法

    4. この休止状態のテンプレートbulkUpdateが機能しない理由