SQL SYSUTCDATETIME() 函数

SQL SYSUTCDATETIME() 函数

SQL SYSUTCDATETIME() 函数是 Date Functions 中的一个,用于返回最近的系统时间戳作为 datetime2 值。SYSUTCDATETIME 函数的返回值是当前的协调通用时间(UTC 时间),它来自 SQL Server 实例所在的计算机操作系统(OS)。

SYSUTCDATETIME() 方法以 yyyy-mm-dd hh:mi:ss.mmmmmmm 格式返回系统时间和日期,我们可以观察到 SYSUTCDATETIME() 和 GETUTCDATE() 返回的是 SQL 服务器所在计算机的相同日期和时间。但它们只有一个不同之处。

  • GETUTCDATE() 以 datetime 形式返回其值

  • SYSUTCDATETIME() 以 datetime2 形式返回其值

这说明 SYSUTCDATETIME() 提供更高的秒精度。datetime2 数据类型的范围比 datetime 更大。

语法

以下是 SQL SYSUTCDATETIME() 函数的语法:

SYSUTCDATETIME()

参数

这个函数不接受任何参数。

示例

在以下示例中,我们尝试获取当前的UTC日期和时间 –

SELECT GETUTCDATE() AS UTCTimeDate;

输出

当我们执行上述查询时,输出结果如下所示-

+-------------------------+
| UTCTimeDate             |
+-------------------------+
| 2023-02-20 05:28:27.850 |
+-------------------------+

示例

在以下示例中,我们使用convert()函数和sysutcdatetime()函数将输出翻译为当前的UTC日期。

SELECT CONVERT(DATE, SYSUTCDATETIME()) AS UTCDate;

输出

在执行上述查询之后,输出结果如下所示 −

+------------+
| UTCDate    |
+------------+
| 2023-02-20 |
+------------+

示例

让我们看另一个示例,我们在其中使用 CONVERT() 函数与sysutcdatetime()函数一起,通过以下查询将输出转换为当前时间。

SELECT CONVERT(TIME, SYSUTCDATETIME()) AS UTCTime;

输出

上述查询的输出如下所示:

+------------------+
| UTCTime          |
+------------------+
| 05:34:33.0180845 |
+------------------+

示例

在这里,我们使用 FORMAT() 函数来按照以下查询格式化我们所需的日期 –

SELECT FORMAT(SYSUTCDATETIME(), 'dd MMMM yyyy, hh:mm tt') AS Result;

输出

当查询被执行时,会生成以下输出结果:

+----------------------------+
| Result                     |
+----------------------------+
| 20 February 2023, 05:39 AM |
+----------------------------+

示例

在下面的示例中,我们使用sysutcdatetime()将其赋给日期和时间类型的变量。

DECLARE @UTC date = SYSUTCDATETIME(); 
SELECT @UTC AS 'UTC Date';

输出

运行上述查询将生成如下输出:

+------------+
| UTCDate    |
+------------+
| 2023-02-20 |
+------------+

示例

看下面的示例,我们将使用 DATEPART() 来仅获取返回值的部分。执行以下查询只从sysutcdatetime()中检索毫秒:

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

输出

如果我们执行上述查询,结果如下所示:

+--------------+
| MilliSeconds |
+--------------+
| 861          |
+--------------+

示例

这里,我们使用 DATEPART() 并通过以下查询来检索sysutcdatetime()中的微秒数 –

SELECT DATEPART(microsecond, SYSUTCDATETIME()) AS MicroSeconds;

输出

执行以上查询时,将生成以下输出,如下所示−

+--------------+
| MicroSeconds |
+--------------+
| 121364       |
+--------------+

示例

在以下示例中,我们使用 DATENAME() 函数显示当前日期的星期几名称。

SELECT DATENAME(WEEKDAY, SYSUTCDATETIME()) AS Day;

输出

执行上述查询后,将生成如下所示的输出结果:

+--------+
| Day    |
+--------+
| Monday |
+--------+

示例

假设我们使用CREATE语句在SQL数据库中创建了一个名为Employees的表,如下所示的查询:

CREATE TABLE Employees(
   ID INT,
   Name VARCHAR(255),
   LoginStamp DATETIME2,
   PRIMARY KEY (ID)
);

现在,让我们使用如下查询的INSERT语句在EMPLOYEE表中插入一些记录:

INSERT INTO Employees VALUES (1, 'Shikhar','2019-10-25 09:20:38.4142345');
INSERT INTO Employees VALUES (2, 'Rana','2019-10-25 09:24:35.1231232');
INSERT INTO Employees VALUES (3, 'Ram','2019-10-25 09:25:24.3214589');

我们可以使用以下查询验证表格IPLPlayers是否已创建-

SELECT * FROM Employees;

表格 Employees 已成功创建在 SQL 数据库中。

+----+------------+----------------------------+
| ID | Name       | LoginStamp                 |
+----+------------+----------------------------+
| 1  | Shikhar    | 2019-10-25 09:20:38.4142345|
| 2  | Rana       | 2019-10-25 09:24:35.1231232|
| 3  | Ram        | 2019-10-25 09:25:24.3214589|
+----+------------+----------------------------+

现在,我们将使用sysutcdatetime()将包含新员工的行添加到Employees表中,通过运行以下查询 –

INSERT INTO Employees VALUES (4, 'Suresh', SYSUTCDATETIME());

验证

要检查该行是否已被插入,请使用以下查询:

SELECT * FROM Employees;

输出

当我们执行上述查询时,输出结果如下:

+----+------------+----------------------------+
| ID | Name       | LoginStamp                 |
+----+------------+----------------------------+
| 1  | Shikhar    | 2019-10-25 09:20:38.4142345|
| 2  | Rana       | 2019-10-25 09:24:35.1231232|
| 3  | Ram        | 2019-10-25 09:25:24.3214589|
| 4  | Suresh     | 2023-02-20 06:51:03.2998780|
+----+------------+---------------+------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程