SQL - DAY() 函式



SQL 的DAY()函式提供一個整數,表示給定日期的月份中的日期(從 1 到 31)。引數必須是返回日期、時間戳、字元字串或圖形字串的內建資料型別之一的表示式。

如果表示式是字元或圖形字串,則表示式必須是日期或時間戳的有效字串表示形式,其實際長度不超過 255 位元組,並且不能是 CLOB 或 DBCLOB。

語法

以下是 SQL DAY() 函式的語法:

DAY(date)

引數

此函式接受一個引數,如下所述:

  • date - 用於返回月份中的日期。

示例

在以下示例中,我們將提及無效字串並檢索日期:

SELECT DAY(2022-11-11);

輸出

當我們執行上述查詢時,將獲得如下輸出:

+-----------------+
| DAY(2022-11-11) |
+-----------------+
| 24              |
+-----------------+

示例

讓我們看看以下示例,我們將使用以下查詢檢索日期:

SELECT DAY('');

輸出

當我們執行上述查詢時,將獲得如下輸出:

+---------+
| DAY('') |
+---------+
| NULL    |
+---------+

示例

在這裡,我們嘗試使用以下查詢檢索日期的月份中的日期:

SELECT DAY('2023/02/16') AS DayOfMonth;

輸出

當我們執行上述查詢時,將獲得如下輸出:

+------------+
| DayOfMonth |
+------------+
| 16         |
+------------+

示例

在這裡,我們嘗試查詢僅提及時間部分的日期,使用以下查詢:

SELECT DAY('12:28:06') AS DAY;

輸出

執行上述查詢後,將顯示如下輸出:

+-----+
| DAY |
+-----+
| 1   |
+-----+

示例

在以下示例中,我們將使用CURRENT_TIMESTAMP檢索日期,執行以下查詢以執行此操作。

SELECT DAY(CURRENT_TIMESTAMP);

輸出

上面查詢的輸出如下所示:

+------------------------+
| DAY(CURRENT_TIMESTAMP) |
+------------------------+
| 16                     |
+------------------------+

示例

檢視以下示例,我們使用備用函式FORMAT()透過以下查詢檢索日期:

SELECT FORMAT(CAST('2023-02-16' AS DATE), 'dddd');

輸出

如果我們執行上述查詢,則結果將如下所示:

+----------+
| DAY      |
+----------+
| Thursday |
+----------+

示例

考慮以下示例,我們使用 day() 函式和變數,並透過以下查詢從指定日期檢索月份中的日期:

DECLARE @DATE VARCHAR(25);
SET @DATE = '2023/02/16';
SELECT DAY(@DATE) AS DAY ;

輸出

執行上述查詢後,它將生成如下所示的輸出:

+------+
| DAY  |
+------+
| 16   |
+------+

示例

我們還可以使用列名作為 DAY() 函式的引數。讓我們使用 CREATE 語句在 SQL 資料庫中建立一個名為 IPLPlayers 的表,如下面的查詢所示:

CREATE TABLE IPLPlayers(
   ID INT,
   Name VARCHAR(255),
   Date_Of_Birth date,
   Country VARCHAR(255),
   PRIMARY KEY (ID)
);

現在,讓我們使用 INSERT 語句在 IPLPlayers 表中插入一些記錄,如下面的查詢所示:

INSERT INTO IPLPlayers VALUES (1, 'Shikhar','1999-11-10','India');
INSERT INTO IPLPlayers VALUES (2, 'Dhoni','1992-12-11','Jharkhand');
INSERT INTO IPLPlayers VALUES (3, 'Gayle','1993-10-12','Westindies');
INSERT INTO IPLPlayers VALUES (4, 'Williamson','1992-09-23','NewZealand'); 

我們可以使用以下查詢驗證表 IPLPlayers 是否已建立:

SELECT * FROM IPLPlayers;

表 IPLPlayers 已成功在 SQL 資料庫中建立。

+----+------------+---------------+------------+
| ID | Name       | Date_Of_Birth | Country    |
+----+------------+---------------+------------+
|  1 | Shikhar    | 1999-11-10    | India      |
|  2 | Dhoni      | 1992-12-11    | Jharkhand  |
|  3 | Gayle      | 1993-10-12    | Westindies |
|  4 | Williamson | 1992-09-23    | NewZealand |
+----+------------+---------------+------------+

現在,我們將透過執行以下查詢從表的 Date_Of_Birth 列中檢索日期:

SELECT Name,Date_Of_Birth, Country,
DAY(Date_Of_Birth) FROM IPLPlayers;

輸出

當我們執行上述查詢時,將獲得如下輸出:

+------------+---------------+------------+--------------------+
| Name       | Date_Of_Birth | Country    | DAY(Date_Of_Birth) |
+------------+---------------+------------+--------------------+
| Shikhar    | 1999-11-10    | India      |                 10 |
| Dhoni      | 1992-12-11    | Jharkhand  |                 11 |
| Gayle      | 1993-10-12    | Westindies |                 12 |
| Williamson | 1992-09-23    | NewZealand |                 23 |
+------------+---------------+------------+--------------------+
sql-date-functions.htm
廣告