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,意即沒有時差。 如果指定了時差引數,則兩個引數都必須存在,且兩者皆必須為正數或負數。 若指定了 minute_offset 卻未指定 hour_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 的值表示 5/10 秒。
如果 fractions 的值為 50、precision 的值為 2,則 fractions 的值表示 50/100 秒。
如果 fractions 的值為 500、precision 的值為 3,則 fractions 的值表示 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)