DATETIMEOFFSETFROMPARTS (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

指定された日付引数と時刻引数に対する datetimeoffset 値を返します。 返される値は、精度引数によって指定された有効桁数と、オフセット引数によって指定されたオフセットを持ちます。

Transact-SQL 構文表記規則

構文

DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

year
年を指定する整数式。

month
月を指定する整数式。

day
日を指定する整数式。

hour
時間を指定する整数式。

minute
分を指定する整数式。

seconds
秒を指定する整数式。

fractions
秒の小数部を指定する整数式。

hour_offset
タイム ゾーン オフセットの時間部分を指定する整数式。

minute_offset
タイム ゾーン オフセットの分部分を指定する整数式。

有効桁数 (precision)
DATETIMEOFFSETFROMPARTS が返す datetimeoffset 値の有効桁数を指定する整数リテラル値です。

戻り値の型

datetimeoffset(precision)

注釈

DATETIMEOFFSETFROMPARTS は、完全に初期化された datetimeoffset データ型を返します。 オフセット引数は、タイム ゾーンのオフセットを表します。 オフセット引数を省略すると、DATETIMEOFFSETFROMPARTS はタイム ゾーン オフセットが 00:00 (つまり、タイム ゾーン オフセットなし) であるものと想定します。 オフセット引数が指定される場合、DATETIMEOFFSETFROMPARTS は両方の引数の値が指定され、両方とも正の値または両方とも負の値であるものと想定します。 minute_offset の値が設定されていて、hour_offset の値が設定されていない場合、DATETIMEOFFSETFROMPARTS はエラーになります。 他の引数が無効な値の場合、DATETIMEOFFSETFROMPARTS はエラーになります。 必須引数の少なくとも 1 つが NULL 値である場合、DATETIMEOFFSETFROMPARTSNULL を返します。 ただし、precision 引数が NULL 値の場合は、DATETIMEOFFSETFROMPARTS はエラーを生成します。

分数 引数によって異なります、 有効桁数 引数。 たとえば、precision の値が 7 の場合、小数部分はそれぞれ 100 ナノ秒を表します。precision の値が 3 の場合、小数部分はそれぞれ 1 ミリ秒を表します。 precision 値がゼロの場合、fractions の値もゼロでなければなりません。それ以外の場合、DATETIMEOFFSETFROMPARTS はエラーを生成します。

この関数は、リモート処理は実行することのできる SQL Server 2012 (11.x) サーバー上とします。 SQL Server 2012 (11.x) 下のバージョンのサーバーには、リモート処理されません。

A. 秒の小数部を使用しない場合の例

SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;  

結果セットは次のようになります。

Result  
----------------------------------
2010-12-31 14:23:23.0000000 +12:00  
  
(1 row(s) affected)  

B. 秒の小数部を使用する場合の例

この例は、fractions パラメーターと precision パラメーターの使用方法を示しています。

  1. fractions の値が 5 のとき、precision の値が 1 であれば、fractions の値は 1 秒の 5/10 になります。

  2. fractions の値が 50 のとき、precision の値が 2 であれば、fractions の値は 1 秒の 50/100 になります。

  3. fractions の値が 500 で、precision の値が 3 の場合、fractions の値は 1 秒の 500/1000 を表します。

SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 5, 12, 30, 1 );  
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 50, 12, 30, 2 );  
SELECT DATETIMEOFFSETFROMPARTS ( 2011, 8, 15, 14, 30, 00, 500, 12, 30, 3 );  
GO  

結果セットは次のようになります。

----------------------------------  
2011-08-15 14:30:00.5 +12:30  
  
(1 row(s) affected)  
  
----------------------------------  
2011-08-15 14:30:00.50 +12:30  
  
(1 row(s) affected)  
  
----------------------------------  
2011-08-15 14:30:00.500 +12:30  
  
(1 row(s) affected)  

こちらもご覧ください

datetimeoffset (Transact-SQL)
AT TIME ZONE (Transact-SQL)