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
广告