SQL DAY()函数
SQL的 DAY() 函数返回指定日期的一个整数值,表示该日期的月份中的天数(从1到31)。参数必须是返回内置数据类型之一(日期、时间戳、字符字符串或图形字符串)的表达式。
如果参数是字符字符串或图形字符串,则表达式必须是有效的日期或时间戳的字符串表示形式,实际长度不超过255个字节,并且不能是CLOB或DB2中的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 |
+------------+---------------+------------+--------------------+