SQL Serverでは、transact-sql SYSDATETIMEOFFSET() 関数はdatetimeoffset(7)を返します SQLServerのインスタンスが実行されているコンピューターの日付と時刻を含む値。この値には、タイムゾーンオフセットが含まれます。
以下の使用例。
構文
構文は次のようになります:
SYSDATETIMEOFFSET ( )
したがって、引数なしで関数を呼び出すだけです。
例
基本的な例は次のとおりです。
SELECT SYSDATETIMEOFFSET() AS Result;
結果:
Result ---------------------------------- 2018-06-17 09:55:27.3221853 +10:00
タイムゾーンオフセットの抽出
DATEPART()を使用できます タイムゾーンオフセットを返す関数。この関数は、タイムゾーンオフセットを分単位で表す整数を返します。
例:
SELECT
SYSDATETIMEOFFSET() AS 'Date/time',
DATEPART(TZoffset, SYSDATETIMEOFFSET()) AS 'TZ Offset'; 結果:
Date/time TZ Offset ---------------------------------- ----------- 2018-06-17 10:04:23.2316409 +10:00 600
FORMAT()関数を使用して、タイムゾーンオフセットを文字列として返すこともできます。具体的には、zを使用できます 、zz 、および/またはzzz 必要な形式で返すための引数。
例:
SELECT
SYSDATETIMEOFFSET() AS 'Date/time',
FORMAT(SYSDATETIMEOFFSET(), 'zz') AS 'zz',
FORMAT(SYSDATETIMEOFFSET(), 'zzz') AS 'zzz'; 結果:
Date/time zz zzz ---------------------------------- -------------- -------------- 2018-06-17 10:27:33.7314840 +10:00 +10 +10:00
戻り値の変換
CONVERT()などの関数を使用することもできます 戻り値を別のデータ型に変換します。これを日付に変換する例を示します 値と時間 値:
SELECT
CONVERT (date, SYSDATETIMEOFFSET()) AS 'Date',
CONVERT (time, SYSDATETIMEOFFSET()) AS 'Time'; 結果:
Date Time ---------- ---------------- 2018-06-17 10:08:29.6377947
もちろん、これを行うと、タイムゾーンのオフセットが失われます。
TODATETIMEOFFSET()も参照してください これにより、 datetimeoffsetを取得できます datetime2からの値 式、およびSWITCHOFFSET() これにより、タイムゾーンオフセットを変更できます。