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
廣告
© . All rights reserved.