T-SQLには、 DATETIMEOFFSETFROMPARTS()
という関数があります。 これにより、 datetimeoffsetを取得できます 日付のさまざまな個別の部分からの値。具体的には、 datetimeoffsetを返します 指定された日時と指定されたオフセットと精度の値。
以下のこの関数の例。
構文
構文は次のようになります:
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
場所:
- 最初の7つの引数は、その特定の日付/時刻部分を指定する整数式です。
-
hour_offset
引数は、タイムゾーンオフセットの時間部分を指定する整数式です。 -
minutes_offset
タイムゾーンオフセットの分単位を指定する整数式です。 精度コード> 引数は、 datetimeoffsetの精度を指定する整数リテラルです。 返される値。この値は、実際にはスケール(つまり、小数点以下の桁数)を指定します。
例
使用例を次に示します。
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, 4 ) AS Result;
結果:
Result ---------------------------------- 2021-05-10 23:35:29.0500 +12:30
無効な引数
すべての引数が有効であることを確認する必要があります。有効でない場合、エラーが発生します。範囲外の時間部分(25)を提供する例を次に示します。時間の部分は0から24の間のみです。
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 25, 35, 29, 500, 12, 30, 4 ) AS Result;
結果:
Cannot construct data type datetimeoffset, some of the arguments have values which are not valid.
引数の数
正しい数の引数(10)を指定する必要があります。そうしないと、エラーが発生します。
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10 ) AS Result;
結果:
The datetimeoffsetfromparts function requires 10 argument(s).
ヌル引数
最初の9つの引数のいずれかがnullの場合、結果は NULL
になります。 :
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 12, 30, 4 ) AS Result;
結果:
Result ---------------------------------- NULL
ただし、最後の(精度)引数がnullの場合、エラーが返されます:
SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, NULL ) AS Result;
結果:
Scale argument is not valid. Valid expressions for data type datetimeoffset scale argument are integer constants and integer constant expressions.
datetime2 を返す方法については、SQL Server(T-SQL)のDATETIME2FROMPARTS()の例も参照してください。 値(オフセットなし)。