SQL - SYSDATETIMEOFFSET() 函式



SYSDATETIMEOFFSET() 函式返回一個 DATETIMEOFFSET(7) 值,該值提供執行 SQL Server 例項的計算機的當前系統日期和時間,其中還包括時區。

SYSDATETIMEOFFSET 函式返回一個 datetime2 資料型別,格式為 yyyy-mm-dd hh:mm:ss.nnnnnn。

語法

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

SYSDATETIMEOFFSET()

引數

此函式不接受任何引數。

示例

讓我們使用以下查詢檢索 sysdatetimeoffset:

SELECT SYSDATETIMEOFFSET() AS Result;

輸出

執行上述查詢後,將獲得如下輸出:

+------------------------------------+
| Result                             |
+------------------------------------+
| 2023-02-17 16:23:11.4906580 +05:30 |
+------------------------------------+

示例

在下面的示例中,我們將使用 DATEPART() 函式來檢索時區的偏移量,該函式返回一個整數,表示以分鐘為單位的時區偏移量,方法是執行以下查詢:

SELECT SYSDATETIMEOFFSET() AS 'Date and Time',
DATEPART(TZoffset, SYSDATETIMEOFFSET()) AS 'TimeZone Offset';

輸出

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

+------------------------------------+-----------------+
| Date and Time                      | TimeZone Offset |
+------------------------------------+-----------------+
| 2023-02-17 16:30:19.6822375 +05:30 | 330             |
+------------------------------------+-----------------+

示例

在這裡,我們使用 FORMAT() 函式以字串形式檢索時區的偏移量,我們還可以使用 zz、z 和 zzz 引數以所需的格式獲取返回值。

讓我們來看一個示例,在這個示例中,我們將使用 FORMAT() 函式使用以下查詢返回時區的偏移量:

SELECT SYSDATETIMEOFFSET() AS 'Date and Time',
   FORMAT(SYSDATETIMEOFFSET(), 'zz') AS 'zz';

輸出

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

+------------------------------------+-----+
| Date and Time                      | zz  |
+------------------------------------------+
| 2023-02-17 16:30:19.6822375 +05:30 | +05 |
+------------------------------------+-----+

示例

在這裡,我們使用 CONVERT() 函式將返回值轉換為其他資料型別。

請看下面的示例,在這個示例中,我們將使用 CONVERT() 函式並將返回值轉換為日期值,方法是使用以下查詢:

SELECT CONVERT (DATE, SYSDATETIMEOFFSET()) AS 'Date';

輸出

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

+------------+
| Date       |
+------------+
| 2023-02-17 |
+------------+

示例

在此示例中,我們使用 DATEDIFF() 函式以及 SYSDATETIMEOFFSET() 函式來查詢當前日期時間和變數之間的分鐘和秒差:

DECLARE @DATETIME DATETIME2
SET @DATETIME = '2023-02-17 05:40:10.3021234'
SELECT 'Minutes_Difference' AS 'MINUTE', DATEDIFF(MINUTE, @DATETIME, SYSDATETIMEOFFSET()) AS NumberofMinutes;
SELECT 'Seconds_Difference' AS 'SECOND', DATEDIFF(SECOND, @DATETIME, SYSDATETIMEOFFSET()) AS NumberofSeconds;

輸出

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

+--------------------+-----------------+
| MINUTE             | NumberofMinutes |
+--------------------+-----------------+
| Minutes_Difference | 391             |
+--------------------+-----------------+

+--------------------+-----------------+
| SECOND             | NumberofSeconds |
+--------------------+-----------------+
| Seconds_Difference | 23460           |
+--------------------+-----------------+

示例

在下面的示例中,我們將使用 DATENAME() 從今天的日期和時間檢索月份名稱,方法是執行以下查詢:

SELECT DATENAME(month, SYSDATETIMEOFFSET()) AS PresentMonth; 

輸出

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

+--------------+
| PresentMonth |
+--------------+
| February     |
+--------------+

示例

在下面的示例中,我們將使用 DATEPART() 函式根據當前日期和時間檢索毫秒數,方法是執行以下查詢:

SELECT DATEPART(millisecond, SYSDATETIMEOFFSET()) AS MilliSeconds;

輸出

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

+--------------+
| MilliSeconds |
+--------------+
| 718          |
+--------------+

示例

在這裡,我們使用 CONVERT() 函式並將返回值轉換為時間值,方法是使用以下查詢:

SELECT CONVERT (TIME, SYSDATETIMEOFFSET()) AS 'Time';

輸出

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

+------------------+
| Time             |
+------------------+
| 18:00:20.2808586 |
+------------------+
sql-date-functions.htm
廣告