SQL DATETIMEFROMPARTS()函数

SQL DATETIMEFROMPARTS()函数

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

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

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

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

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

语法

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

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

参数

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

  • 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;
SQL

输出

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

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

示例

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

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

错误

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

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

示例

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

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

输出

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

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

示例

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

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

错误

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

The datetimefromparts function requires 7 argument(s).
SQL

示例

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

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

输出

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

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

示例

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

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

错误

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

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

示例

假设我们使用以下查询语句在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)
SQL

现在,让我们使用以下查询中显示的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

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

SQL> SELECT * FROM STUDENTS
SQL

在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

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

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

输出

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

+--------+-------------------------+
| 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 |
+--------+-------------------------+
SQL

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册