DATETIMEOFFSETFROMPARTS (Transact-SQL)
指定されたオフセットおよび有効桁数を使用して、指定された日付と時刻を表す datetimeoffset 値を返します。
構文
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
引数
year
年を指定する整数式。month
月を指定する整数式。day
日を指定する整数式。hour
時間を指定する整数式。minute
分を指定する整数式。seconds
秒を指定する整数式。fractions
小数部分を指定する整数式。hour_offset
タイム ゾーン オフセットの時間部分を指定する整数式。minute_offset
タイム ゾーン オフセットの分部分を指定する整数式。precision
返される datetimeoffset 値の有効桁数を指定する整数リテラル。
戻り値の型
datetimeoffset ( precision )
説明
DATETIMEOFFSETFROMPARTS は、完全に初期化された datetimeoffset データ型を返します。 オフセットの引数は、タイム ゾーン オフセットを表すために使用します。 オフセット引数を省略した場合、タイム ゾーン オフセットは 00:00 と見なされ、タイム ゾーン オフセットはありません。 オフセット引数を指定する場合、両方の引数が存在し、両方とも正または負である必要があります。 hour_offset を指定しないで minute_offset を指定した場合、エラーが発生します。 他の引数が有効でない場合は、エラーが発生します。 必要な引数が NULL の場合は、NULL が返されます。 ただし、precision 引数が NULL の場合は、エラーが発生します。
fractions 引数は precision 引数に依存します。 たとえば、precision が 7 の場合、小数部分はそれぞれ 100 ナノ秒を表します。precision が 3 の場合、小数部分はそれぞれ 1 ミリ秒を表します。 precision の値がゼロの場合、fractions の値もゼロにする必要があります。そうでない場合は、エラーが発生します。
この関数は、SQL Server 2012 以上のサーバーに対してリモート処理が可能です。 SQL Server 2012 より前のバージョンをインストールしているサーバーには、リモート処理が行われません。
使用例
A. 秒の小数部を使用しない場合の簡単な例
SELECT DATETIMEOFFSETFROMPARTS ( 2010, 12, 31, 14, 23, 23, 0, 12, 0, 7 ) AS Result;
以下に結果セットを示します。
Result
-------------------------------------------
2010-12-07 00:00:00.0000000 +00:00
(1 row(s) affected)
B. 秒の小数部を使用する場合の例
以下の例は、fractions パラメーターと precision パラメーターの使用方法を示しています。
fractions の値が 5 で precision の値が 1 の場合、fractions の値は 1 秒の 5/10 を表します。
fractions の値が 50 で precision の値が 2 の場合、fractions の値は 1 秒の 50/100 を表します。
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)