SQL DATETIMEFROMPARTS()函数

SQL DATETIMEFROMPARTS()函数

SQL DATETIMEFROMPARTS() 函数用于根据作为参数提供的单个段构造一个新的日期时间值。

这个函数接受七个参数:年、月、日、小时、分钟、秒和毫秒,并返回一个 日期时间 值。

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

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

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

语法

以下是SQL DATETIMEFROMPARTS() 函数的语法:

DATETIMEFROMPARTS(year, month, day, hour, minute, seconds, milliseconds)

参数

此函数接受七个参数。具体如下:

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

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

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

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

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

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

  • milliseconds - 这指定datetime值的毫秒部分。

示例

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

SQL> SELECT DATETIMEFROMPARTS (2023, 02, 17, 17, 01, 45, 000) AS DATE_TIME;

输出

执行上述查询时,输出如下显示:

+-------------------------+
| DATE_TIME               |
+-------------------------+
| 2023-02-17 17:01:45.000 |
+-------------------------+

示例

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

SQL> SELECT DATETIMEFROMPARTS (2023, 02, 34, 53, 67, 45, 000) AS DATE_TIME;

错误

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

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

示例

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

SQL> SELECT DATETIMEFROMPARTS (2023, 02, null, 23, null, 45, 000) AS DATE_TIME;

输出

当我们执行上述查询时,可以得到如下输出结果:

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

示例

我们需要提供函数的所有七个参数,如果不提供,函数将会出错。

SQL> SELECT DATETIMEFROMPARTS (2023, 02, 17) AS DATE_TIME;

错误

如果我们执行上述查询,结果会产生如下-

The datetimefromparts function requires 7 argument(s).

示例

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

SQL> SELECT DATETIMEFROMPARTS (2024, 02, 29, 19, 11, 55, 343) AS DATE_TIME;

输出

执行上述查询时,得到的输出如下:

+-------------------------+
| DATE_TIME               |
+-------------------------+
| 2024-02-29 19:11:55.343 |
+-------------------------+

示例

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

SQL> SELECT DATETIMEFROMPARTS (2023, 02, 29, 19, 11, 55, 343) AS DATE_TIME

错误

如果我们执行该程序,结果如下所示−

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

示例

假设我们使用以下查询语句在SQL数据库中使用CREATE语句创建了一个名为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, SECONDS VARCHAR (200) NOT NULL, MILLISECONDS VARCHAR (200) NOT NULL)

现在,让我们使用以下查询中显示的INSERT语句在STUDENTS表中插入一些记录。

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

我们可以使用以下查询来验证表是否被创建了 –

SQL> SELECT * FROM STUDENTS

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

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

我们可以使用以下查询来合并所有学生的日期和时间值:

SQL> SELECT NAME, DATETIMEFROMPARTS(YEAR, MONTH, DAY, HOURS, MINUTES, SECONDS, MILLISECONDS) AS DATETIMEFROMPARTS_VALUE FROM STUDENTS;

输出

当我们执行上述查询时,输出如下:

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程