SQL SMALLDATETIMEFROMPARTS()函数

SQL SMALLDATETIMEFROMPARTS()函数

SQL SMALLDATETIMEFROMPARTS() 函数用于根据作为参数提供的各个部分构造新的datetime值。

这个函数接受五个参数- 年、月、日、小时和分钟,并返回一个 datetime 值;如果任何一个参数缺失,它将返回一个错误。

  • 如果任何一个参数缺失,它将返回一个错误。

  • 如果作为参数传递的值无效,该函数将导致错误。

  • 如果任何一个参数为null,它会将结果返回null。

语法

以下是SQL SMALLDATETIMEFROMPARTS() 函数的语法-

SMALLDATETIMEFROMPARTS(year, month, day, hour, minute)

参数

这个函数接受五个参数。具体如下:

  • year - 指定datetime2值的年部分,表示为整数。

  • month - 指定datetime2值的月部分,表示为1到12之间的整数。

  • day - 指定datetime2值的日部分,表示为1到31之间的整数。

  • hour - 指定datetime2值的小时部分,表示为0到23之间的整数。

  • minute - 指定datetime2值的分钟部分,表示为0到59之间的整数。

示例

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

SQL> SELECT SMALLDATETIMEFROMPARTS(2023, 02, 18, 16, 30) AS RESULT;

输出

执行上述查询后,输出结果如下所示 –

+---------------------+
| RESULT              |
+---------------------+
| 2023-02-18 16:30:00 |
+---------------------+

示例

如果我们给函数的任何参数提供无效的值,会导致错误。

SQL> SELECT SMALLDATETIMEFROMPARTS(2023, 02, 34, 87, 72) AS RESULT;

错误

如果我们执行程序,则会产生如下结果-

Cannot construct data type datetime, some of the arguments have values which are not valid.

示例

如果我们将函数的任何参数设置为null,则函数的结果将为null。

SQL> SELECT SMALLDATETIMEFROMPARTS (2023, 02, null, 23, null) AS RESULT;

输出

当我们执行上面的查询时,输出如下所示:

+-----------+
| DATE_TIME |
+-----------+
| NULL      |
+-----------+

示例

我们需要提供函数的全部五个参数。如果我们没有提供,函数将会产生错误。

SQL> SELECT SMALLDATETIMEFROMPARTS(2023, 02, 18) AS DATE_TIME;

错误

如果我们执行以上查询,结果如下所示−

The smalldatetimefromparts function requires 5 argument(s)..

示例

在这里,我们使用以下查询将闰年日期作为参数提供给函数:

SQL> SELECT SMALLDATETIMEFROMPARTS (2024, 02, 29, 19, 11) AS RESULT

输出

执行以上查询时,输出结果如下所示 –

+---------------------+
| RESULT              |
+---------------------+
| 2024-02-29 19:11:00 |
+---------------------+

示例

在下面的示例中,我们将日期设置为29,而2023年不是闰年。因此,该函数将返回一个错误。

SQL> SELECT SMALLDATETIMEFROMPARTS (2023, 02, 29, 19, 11) AS RESULT

错误

如果我们执行该程序,将产生以下结果−

Cannot construct data type datetime, some of the arguments have values which are not valid.

示例

假设我们使用CREATE语句在SQL数据库中创建了名为STUDENTS的表,查询如下所示:

SQL> CREATE TABLE STUDENTS(ID INT NOT NULL, NAME VARCHAR (200) NOT NULL, YEAR VARCHAR (200) NOT NULL, MONTH VARCHAR (200) NOT NULL, DAY VARCHAR (200) NOT NULL, HOURS VARCHAR (200) NOT NULL, MINUTES VARCHAR (200) NOT NULL)

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

SQL> INSERT INTO STUDENTS(ID, NAME, YEAR, MONTH, DAY, HOURS, MINUTES) VALUES(1, 'Dhruv', '2023', '01', '01', '14', '23');
INSERT INTO STUDENTS(ID, NAME, YEAR, MONTH, DAY, HOURS, MINUTES) VALUES(2, 'Arjun', '2023', '02', '01', '05', '43');
INSERT INTO STUDENTS(ID, NAME, YEAR, MONTH, DAY, HOURS, MINUTES) VALUES(3, 'Dev', '2023', '03', '01', '06', '11');
INSERT INTO STUDENTS(ID, NAME, YEAR, MONTH, DAY, HOURS, MINUTES) VALUES(4, 'Riya', '2023', '04', '01', '07', '21');
INSERT INTO STUDENTS(ID, NAME, YEAR, MONTH, DAY, HOURS, MINUTES) VALUES(5, 'Aarohi', '2023', '08', '01', '08', '54');
INSERT INTO STUDENTS(ID, NAME, YEAR, MONTH, DAY, HOURS, MINUTES) VALUES(6, 'Lisa', '2023', '09', '01', '09', '32');
INSERT INTO STUDENTS(ID, NAME, YEAR, MONTH, DAY, HOURS, MINUTES) VALUES(7, 'Roy', '2023', '10', '01', '10', '01');

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

SQL> SELECT * FROM STUDENTS

在SQL数据库中成功创建了表 STUDENTS。

+----+--------+------+-------+-----+-------+---------+
| ID |  NAME  | YEAR | MONTH | DAY | HOURS | MINUTES |
+----+--------+------+-------+-----+-------+---------+
| 1  | Dhruv  | 2023 | 01    | 01  | 14    | 23      |
| 2  | Arjun  | 2023 | 02    | 01  | 05    | 43      |
| 3  | Dev    | 2023 | 03    | 01  | 06    | 11      |
| 4  | Riya   | 2023 | 04    | 01  | 07    | 21      |
| 5  | Aarohi | 2023 | 08    | 01  | 08    | 54      |
| 6  | Lisa   | 2023 | 09    | 01  | 09    | 32      |
| 7  | Roy    | 2023 | 10    | 01  | 10    | 01      |
+----+--------+------+-------+-----+-------+---------+

这里,我们尝试使用以下查询将所有学生的日期和时间值连接起来:

SQL> SELECT NAME, SMALLDATETIMEFROMPARTS(YEAR, MONTH, DAY, HOURS, MINUTES) AS SMALLDATETIMEFROMPARTS_VALUE FROM STUDENTS;

输出

当我们执行上面的查询时,输出结果如下:

+--------+-------------------------+
| NAME   | DATETIMEFROMPARTS_VALUE |
+--------+-------------------------+
| Dhruv  | 2023-01-01 14:23:00     |
| Arjun  | 2023-02-01 05:43:00     |
| Dev    | 2023-03-01 06:11:00     |
| Riya   | 2023-04-01 07:21:00     |
| Aarohi | 2023-08-01 08:54:00     |
| Lisa   | 2023-09-01 09:32:00     |
| Roy    | 2023-10-01 10:01:00     |
+--------+-------------------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程