DATETIMEOFFSETFROMPARTS (Transact-SQL)

傳回包含指定時差和精確度之指定日期和時間的 datetimeoffset 值。

主題連結圖示 Transact-SQL 語法慣例

適用於:SQL Server (SQL Server 2012 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。

語法

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 2014 伺服器和更新版伺服器上以遠端方式進行。 它在版本低於 SQL Server 2014 的伺服器上無法以遠端方式運作。

範例

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 參數的用法:

  1. 如果 fractions 的值為 5、precision 的值為 1,則 fractions 的值表示 5/10 秒。

  2. 如果 fractions 的值為 50、precision 的值為 2,則 fractions 的值表示 50/100 秒。

  3. 如果 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)

請參閱

參考

datetimeoffset (Transact-SQL)