SQL - TODATETIMEOFFSET() 函式



SQL 的TODATETIMEOFFSET() 函式是一個日期和時間函式,它使用使用者指定的 datetime2 和時區返回一個 datetimeoffset 值。

TODATETIMEOFFSET 函式操作兩個輸入 - 目標時區偏移量和非偏移日期和時間值,它簡單地將兩者組合以生成 DATETIMEOFFSET 值。此函式的輸出是資料型別 datetimeoffset 的值。

我們可以以分鐘或小時的格式提供時區。如果以分鐘提供,則使用整數 (-4);如果以小時提供,則使用字串 ('+06.00')。時區的範圍為 +14 到 -14(小時)。

語法

以下是 SQL TODATETIMEOFFSET() 函式的語法 -

TODATETIMEOFFSET(expression,time_zone)

引數

此函式僅接受兩個引數。下面描述了相同內容 -

  • expression - 將解析為 datetime2 值。

  • time_zone - 它是一個時區偏移量或從 +14 到 -14 的帶符號整數範圍。

示例

在以下示例中,我們將使用以下查詢更改分鐘的時區偏移量 -

在此示例中,我們將當前時區更改為 -150 分鐘;

SELECT TODATETIMEOFFSET (GETDATE(), -150) AS Result;

輸出

當我們執行上述查詢時,將獲得如下輸出 -

+--------------------------------+
| Result                         |
+--------------------------------+
| 2023-02-20 12:52:55.827 -02:30 |
+--------------------------------+

示例

讓我們看看另一種情況,我們將使用以下查詢以正數分鐘更改時區 -

SELECT TODATETIMEOFFSET (GETDATE(), 360) AS Result;

輸出

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

+--------------------------------+
| Result                         |
+--------------------------------+
| 2023-02-20 15:22:33.533 +06:00 |
+--------------------------------+

示例

在以下示例中,我們使用顯式設定變數為 datetime2 值,並將TODATETIMEOFFSET() 應用於該值,並使用以下查詢比較這兩個值 -

DECLARE @DATE datetime2 = '2023-02-20 02:33:18.0000000';
SELECT @DATE AS 'Original Date',
   TODATETIMEOFFSET( @DATE, '+06:00' ) AS '+06:00';

輸出

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

+-----------------------------+-------------------------------------+
| Original Date               | +06:00                              |
+-----------------------------+-------------------------------------+
| 2023-02-20 02:33:18.0000000 | 2023-02-20 02:33:18.0000000 +06:00  |
+-----------------------------+-------------------------------------+

示例

讓我們看看另一個示例,我們將使用以下查詢將時區偏移量設定為整數 -

SELECT TODATETIMEOFFSET( '2023-02-20 02:33:18.0000000', -150 ) AS Result;

輸出

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

+------------------------------------+
| Result                             |
+------------------------------------+
| 2023-02-20 02:33:18.0000000 -02:30 |
+------------------------------------+

示例

讓我們看看以下示例,其中我們使用SYSDATETIMEOFFSET() 函式作為日期表示式,它生成 SQL Server 執行的系統的當前日期/時間,使用以下查詢 -

SELECT SYSDATETIMEOFFSET() AS 'Current Date',
   TODATETIMEOFFSET( SYSDATETIMEOFFSET(), '+06:00' ) AS '+06:00';

輸出

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

+------------------------------------+------------------------------------+
| Current Date                       | +06:00                             |
+------------------------------------+------------------------------------+
| 2023-02-20 14:50:06.8050290 +05:30 | 2023-02-20 14:50:06.8050290 +06:00 |
+------------------------------------+------------------------------------+

示例

在以下示例中,我們使用DATETIMEOFFSET() 函式並將使用以下查詢檢索偏移值使用 TODATETIMEOFFSET() 函式 -

DECLARE @DATE DATETIMEOFFSET = '2023-02-20 14:50:06.8050290 +04:30';
SELECT @DATE AS 'Original Date',
   TODATETIMEOFFSET( @DATE, '+06:00' ) AS '+06:00';

輸出

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

+------------------------------------+------------------------------------+
| Original Date                      | +06:00                             |
+------------------------------------+------------------------------------+
| 2023-02-20 14:50:06.8050290 +04:30 | 2023-02-20 14:50:06.8050290 +06:00 |
+------------------------------------+------------------------------------+

示例

在以下示例中,我們使用DATETIMEOFFSET() 函式並將使用以下查詢檢索偏移值使用 TODATETIMEOFFSET() 函式 -

DECLARE @DATE DATETIMEOFFSET = '2023-02-20 14:50:06.8050290 +04:30';
SELECT @DATE AS 'Original Date',
   TODATETIMEOFFSET( @DATE, '+06:00' ) AS '+06:00';

輸出

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

+------------------------------------+------------------------------------+
| Original Date                      | +06:00                             |
+------------------------------------+------------------------------------+
| 2023-02-20 14:50:06.8050290 +04:30 | 2023-02-20 14:50:06.8050290 +06:00 |
+------------------------------------+------------------------------------+

示例

檢視以下示例,我們將使用以下查詢更改時區 -

SELECT TODATETIMEOFFSET (GETDATE(), '+05:30') AS Result;

輸出

如果我們執行上述查詢,則結果如下所示 -

+--------------------------------+
| Result                         |
+--------------------------------+
| 2023-02-20 15:12:41.213 +05:30 |
+--------------------------------+

示例

這是另一種情況,我們將使用以下查詢以負數小時更改時區 -

SELECT TODATETIMEOFFSET (GETDATE(), '-06:00') AS Result;

輸出

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

+---------------------------------+
| Result                          |
+---------------------------------+
| 2023-02-20 15:16:30.247 -06:00  |
+---------------------------------+
sql-date-functions.htm
廣告

© . All rights reserved.