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 |
+------------------+