適用於:SQL Server
Azure SQL Database
Azure SQL 受控執行個體
Azure Synapse Analytics
Microsoft Fabric 中的 SQL 分析端點
Microsoft Fabric 中的倉庫
Microsoft Fabric 中的 SQL 資料庫
會傳回指定日期和時間引數的 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(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)