SQL - DATETIMEOFFSETFROMPARTS() 函式



SQL 的DATETIMEOFFSETFROMPARTS()函式允許您從日期的每個組成部分提取一個 datetimeoffset 值。它專門為給定的時間和日期返回一個 datetimeoffset 值,以及偏移量和精度。

DATETIMEOFFSETFROMPARTS 是 SQL Server 中的重要操作之一,用於從偏移量和精度建立日期和時間。根據給定的日期和時間元件輸入,返回一個值。每個引數都是必需的。如果任何一個為 null,則返回 null。

語法

以下是 SQL DATETIMEOFFSETFROMPARTS() 函式的語法:

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 - 指示 DATETIMEOFFSETFROMPARTS 將返回的 datetimeoffset 值的精度的整數值。

示例

這裡,我們使用 DATETIMEOFFSETFROMPARTS() 函式以及日期和時間引數,透過以下查詢構造 DATETIMEOFFSET:

SELECT DATETIMEOFFSETFROMPARTS(2023, 02, 21, 12, 28, 30, 5000, 10, 30, 4) AS Result;

輸出

當我們執行上述查詢時,輸出如下所示:

+---------------------------------+
| Result                          |
+---------------------------------+
| 2023-02-21 12:28:30.5000 +10:30 |
+---------------------------------+

示例

讓我們看看另一種情況,我們將對日期使用 null 值,並透過執行以下查詢檢查結果:

SELECT DATETIMEOFFSETFROMPARTS(2023, 02, NULL, 12, 28, 30, 5000, 10, 30, 4) AS Result;

輸出

當查詢執行時,將生成如下所示的輸出:

+-------+
| Result|
+-------+
| NULL  |
+-------+

示例

在以下示例中,我們將使用無效引數,這會導致 DATETIME2FROMPARTS() 函式返回錯誤,讓我們透過執行以下查詢來檢查這一點:

SELECT DATETIMEOFFSETFROMPARTS(2023, 22, 21, 12, 28, 30, 5000, 10, 30, 4) AS Result;

輸出

執行上述查詢後,輸出顯示如下:

Cannot construct data type datetimeoffset, some of the arguments have values which are not valid.

示例

讓我們看看另一種情況,我們不指定所有引數的數量,並透過執行查詢來檢查結果:

SELECT DATETIMEOFFSETFROMPARTS(2023, 22, 21) AS Result;

輸出

當查詢執行時,將生成如下所示的輸出:

The datetimeoffsetfromparts function requires 10 argument(s).

示例

這裡,我們將最後一個精度值設為 NULL,並透過執行以下查詢檢查結果:

SELECT DATETIMEOFFSETFROMPARTS(2023, 22, 21, 12, 28, 30, 5000, 10, 30, NULL) AS Result;

輸出

上述查詢的輸出如下所示:

Scale argument is not valid. Valid expressions for data type datetimeoffset scale argument are integer constants and integer constant expressions.

示例

在以下示例中,我們將精度值設定為大於小數部分,並使用以下查詢檢查結果:

SELECT DATETIMEOFFSETFROMPARTS(2023, 02, 21, 12, 28, 30, 363, 10, 30, 7) AS Result;

輸出

當查詢執行時,將生成如下所示的輸出:

+------------------------------------+
| Result                             |
+------------------------------------+
| 2023-02-21 12:28:30.0000363 +10:30 |
+------------------------------------+

示例

讓我們考慮另一種情況,我們將使用精度值小於小數部分,並使用以下查詢檢查結果:

SELECT DATETIMEOFFSETFROMPARTS(2023, 02, 21, 12, 28, 30, 363, 10, 30, 2) AS Result;

輸出

執行上述查詢後,將生成如下所示的輸出:

Cannot construct data type datetimeoffset, some of the arguments have values which are not valid.
sql-date-functions.htm
廣告