SQL - GETUTCDATE() 函数



SQL 的GETUTCDATE()函数用于返回当前的 UTC 日期和时间。

UTC代表协调世界时,这是全球通用的标准时间参考。当我们需要在数据库中记录事件或事务并确保它们在世界各地不同时区中准确且标准化时,此函数非常有用。这使我们能够轻松地分析数据,而不管它是在哪里记录的。

语法

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

GETUTCDATE()

参数

此函数不接受任何参数。

示例

以下示例演示了 GETUTCDATE() 函数的用法:

SQL> SELECT GETUTCDATE() AS GETUTCDATE_RESULT;

输出

当我们执行上述查询时,将获得如下输出:

+-------------------------+
| GETUTCDATE_RESULT       |
+-------------------------+
| 2023-02-17 06:36:37.143 |
+-------------------------+

示例

SQL GETUTCDATE() 函数的结果格式为 yyyy-mm-dd hh:mm:ss.mmm。现在,让我们使用以下查询自定义结果格式:

SQL> SELECT FORMAT(GETUTCDATE(),'dd-mm-yyyy hh:mm:ss tt') AS FORMAT_DATE_AND_TIME

输出

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

+------------------------+
| FORMAT_DATE_AND_TIME   |
+------------------------+
| 17-37-2023 06:37:45 AM |
+------------------------+

示例

我们可以使用 CONVERT() 函数从 GETUTCDATE() 函数的结果中只返回日期或时间部分。

SQL> SELECT CONVERT(DATE, GETUTCDATE()) AS CURRENT_UTC_DATE, 
CONVERT(TIME, GETUTCDATE()) AS CURRENT_UTC_TIME;

输出

执行上述查询后,输出将显示如下:

+------------------+------------------+
| CURRENT_UTC_DATE | CURRENT_UTC_TIME |
+------------------+------------------+
| 2023-02-17       | 06:41:54.0800000 |
+------------------+------------------+

示例

在这里,我们尝试从 GETUTCDATE() 函数的结果中添加和减去天数。

SQL> SELECT GETUTCDATE() +10 AS DATE_ADD, GETUTCDATE() -15 AS DATE_SUB;

输出

当我们执行上述查询时,将获得如下输出:

+-------------------------+-------------------------+
| DATE_ADD                | DATE_SUB                |
+-------------------------+-------------------------+
| 2023-02-27 06:44:32.183 | 2023-02-02 06:44:32.183 |
+-------------------------+-------------------------+

示例

我们可以使用 SQL GETUTCDATE() 函数以及 DAY、MONTH 和 YEAR 函数来显示 GETUTCDATE() 函数结果中的当前日、月和年。

SQL> SELECT YEAR(GETUTCDATE()) AS [YEAR], MONTH(GETUTCDATE()) AS [MONTH], DAY(GETUTCDATE()) AS [DAY];

输出

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

+------+-------+-----+
| YEAR | MONTH | DAY |
+------+-------+-----+
| 2023 | 2     | 17  |
+------+-------+-----+

示例

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

SQL> CREATE TABLE EMPLOYEE(ID INT NOT NULL, NAME VARCHAR (20) NOT NULL, DATE_OF_BIRTH VARCHAR (20));

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

SQL> INSERT INTO EMPLOYEE(ID, NAME, DATE_OF_BIRTH) VALUES(1, 'Dhruv', '2000-12-05');
INSERT INTO EMPLOYEE(ID, NAME, DATE_OF_BIRTH) VALUES(2, 'Arjun', '2000-03-01');
INSERT INTO EMPLOYEE(ID, NAME, DATE_OF_BIRTH) VALUES(3, 'Dev', '2001-03-15');
INSERT INTO EMPLOYEE(ID, NAME, DATE_OF_BIRTH) VALUES(4, 'Riya', '2003-12-05');
INSERT INTO EMPLOYEE(ID, NAME, DATE_OF_BIRTH) VALUES(5, 'Aarohi', '2000-05-02');
INSERT INTO EMPLOYEE(ID, NAME, DATE_OF_BIRTH) VALUES(6, 'Lisa', '1999-11-25');
INSERT INTO EMPLOYEE(ID, NAME, DATE_OF_BIRTH) VALUES(7, 'Roy', '2001-05-30');

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

SQL> SELECT * FROM EMPLOYEE;

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

+-----+--------+---------------+
| ID  | NAME   | DATE_OF_BIRTH |
+-----+--------+---------------+
| 1   | Dhruv  | 2000-12-05    |
| 2   | Arjun  | 2000-03-01    |
| 3   | Dev    | 2001-03-15    |
| 4   | Riya   | 2003-12-05    |
| 5   | Aarohi | 2000-05-02    |
| 6   | Lisa   | 1999-11-25    |
| 7   | Roy    | 2001-05-30    |
+-----+--------+---------------+

在下面的查询中,我们正在计算每个员工的年龄(根据 UTC 日期和时间)以年为单位:

注意 - 我们可以将GETUTCDATE() 函数作为参数传递。

SQL> SELECT ID, NAME, DATE_OF_BIRTH, DATEDIFF(YEAR, DATE_OF_BIRTH, GETUTCDATE()) AS AGE_IN_YEARS FROM EMPLOYEE;

输出

当我们执行上述查询时,将获得如下输出:

+-----+--------+----------------+--------------+
| ID  | NAME   | DATE_OF_BIRTH  | AGE_IN_YEARS |   
+-----+--------+----------------+--------------+
| 1   | Dhruv  | 2000-12-05     | 23           |
| 2   | Arjun  | 2000-03-01     | 23           |
| 3   | Dev    | 2001-03-15     | 22           |
| 4   | Riya   | 2003-12-05     | 20           |
| 5   | Aarohi | 2000-05-02     | 23           |
| 6   | Lisa   | 1999-11-25     | 24           |
| 7   | Roy    | 2001-05-30     | 22           |
+-----+--------+----------------+--------------+

示例

让我们使用如下所示的 CREATE 语句在 SQL 数据库中创建另一个名为 OTT 的表:

SQL> CREATE TABLE OTT(ID INT NOT NULL, SUBSCRIBER_NAME VARCHAR (200) NOT NULL, MEMBERSHIP VARCHAR (200), SUBCRIPTION_DATE DATE NOT NULL);

现在,让我们使用如下所示的 INSERT 语句在 OTT 表中插入一些记录:

SQL> INSERT INTO OTT(ID, SUBSCRIBER_NAME, MEMBERSHIP, SUBCRIPTION_DATE) VALUES(1, 'Dhruv', 'Silver', '2022-12-05');
INSERT INTO OTT(ID, SUBSCRIBER_NAME, MEMBERSHIP, SUBCRIPTION_DATE) VALUES(2, 'Arjun','Platinum', '2021-03-01');
INSERT INTO OTT(ID, SUBSCRIBER_NAME, MEMBERSHIP, SUBCRIPTION_DATE) VALUES(3, 'Dev','Silver', '2021-03-15');
INSERT INTO OTT(ID, SUBSCRIBER_NAME, MEMBERSHIP, SUBCRIPTION_DATE) VALUES(4, 'Riya','Gold', '2022-12-05');
INSERT INTO OTT(ID, SUBSCRIBER_NAME, MEMBERSHIP, SUBCRIPTION_DATE) VALUES(5, 'Aarohi','Platinum', '2020-05-02');
INSERT INTO OTT(ID, SUBSCRIBER_NAME, MEMBERSHIP, SUBCRIPTION_DATE) VALUES(6, 'Lisa','Platinum', '2022-11-25');
INSERT INTO OTT(ID, SUBSCRIBER_NAME, MEMBERSHIP, SUBCRIPTION_DATE) VALUES(7, 'Roy','Gold', '2021-05-30');

我们可以使用以下查询验证 OTT 表是否已创建:

SQL> SELECT * FROM OTT

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

+-----+-----------------+------------+------------------+
| ID  | SUBSCRIBER_NAME | MEMBERSHIP | SUBSCRIPTION_DATE|   
+-----+-----------------+------------+------------------+
| 1   | Dhruv           | Silver     | 2022-12-05       |
| 2   | Arjun           | Platinum   | 2021-03-01       |
| 3   | Dev             | Silver     | 2021-03-15       |
| 4   | Riya            | Gold       | 2022-12-05       |
| 5   | Aarohi          | Platinum   | 2020-05-02       |
| 6   | Lisa            | Platinum   | 2022-11-25       |
| 7   | Roy             | Gold       | 2021-05-30       |
+-----+-----------------+------------+------------------+

在下面的查询中,我们尝试显示订阅计划到期剩余的小时数(根据 UTC 日期和时间):

SQL> SELECT SUBSCRIBER_NAME, SUBCRIPTION_DATE, DATEDIFF(HOUR, SUBCRIPTION_DATE, GETUTCDATE()) AS REMAINING_HOURS FROM OTT;

输出

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

+-----------------+-------------------+-----------------+
| SUBSCRIBER_NAME | SUBSCRIPTION_DATE | REMAINING_HOURS |   
+-----------------+-------------------+-----------------+
| Dhruv           | 2022-12-05        | 1782            |
| Arjun           | 2021-03-01        | 17238           |
| Dev             | 2021-03-15        | 16902           |
| Riya            | 2022-12-05        | 1782            |
| Aarohi          | 2020-05-02        | 24510           |
| Lisa            | 2022-11-25        | 2022            |
| Roy             | 2021-05-30        | 15078           |
+-----------------+-------------------+-----------------+
sql-date-functions.htm
广告