DATETIMEOFFSETFROMPARTS (Transact-SQL)
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
會傳回指定日期和時間引數的 datetimeoffset 值。 傳回值的有效位數由 precision 引數指定,時差則由 offset 引數指定。
語法
DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )
引數
year
指定年份的整數運算式。
month
指定月份的整數運算式。
day
指定日期的整數運算式。
hour
指定小時的整數運算式。
minute
指定分鐘的整數運算式。
seconds
指定秒的整數運算式。
fractions
指定小數秒值的整數運算式。
hour_offset
指定時區時差之小時部分的整數運算式。
minute_offset
指定時區時差之分鐘部分的整數運算式。
有效位數
整數常值,指定 DATETIMEOFFSETFROMPARTS
所傳回 datetimeoffset 值的有效位數。
傳回類型
datetimeoffset( precision )
備註
DATETIMEOFFSETFROMPARTS
會傳回完整初始化的 datetimeoffset 資料類型。 offset 引數代表時區時差。 針對省略的 offset 引數,DATETIMEOFFSETFROMPARTS
會假設時區時差為 00:00
,也就是完全沒有時區時差。 針對指定的 offset 引數,DATETIMEOFFSETFROMPARTS
預期兩個引數都有值,而且兩個值同時為正數值或負數值。 如果 minute_offset 具有值而 hour_offset 沒有值,DATETIMEOFFSETFROMPARTS
會引發錯誤。 如果其他引數的值無效,則 DATETIMEOFFSETFROMPARTS
會引發錯誤。 如果至少一個必要引數具有 NULL
值,則 DATETIMEOFFSETFROMPARTS
會傳回 NULL
。 不過,如果 precision 引數具有 NULL
值,則 DATETIMEOFFSETFROMPARTS
會引發錯誤。
fractions 引數相依於 precision 引數。 例如,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 參數的用法:
若 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)