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
广告