SQL DATETIME2FROMPARTS()函数

SQL DATETIME2FROMPARTS()函数

SQL DATETIME2FROMPARTS() 函数用于根据单独的日期和时间段构造一个 datetime2 值。

该函数接受八个参数,如年、月、日、小时、分钟、秒和精度,并返回一个表示指定时间的 datetime2 值。

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

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

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

当datetime2值的年、月、日、小时、分钟、秒和小数秒有单独的值,并且希望将它们组合成一个datetime2值时,通常使用该函数。

语法

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

DATETIME2FROMPARTS(year, month, day, hour, minute, seconds, fractions, precision)

参数

此函数接受八个参数。具体描述如下:

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

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

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

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

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

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

  • fractions - 指定datetime2值的毫秒部分,表示为从0到9999999的整数。

  • precision - 指定要返回的datetime2值的精度。

示例

在以下示例中,我们尝试使用以下查询构建一个不含秒的datetime2值 –

SQL> SELECT DATETIME2FROMPARTS(2023, 02, 20, 06, 10, 45, 0, 0) AS RESULT;

输出

执行上述查询后,输出如下所示:

+---------------------+
| RESULT              |
+---------------------+
| 2023-02-20 06:10:45 |
+---------------------+

示例

让我们尝试使用SQL DATETIME2FROMPARTS()函数的分数和精度参数−

  • 当分数的值为5且精度值为1时,分数的值表示1秒的5/10。

  • 当分数的值为5且精度值为2时,分数的值表示1秒的5/100。

  • 当分数的值为5且精度值为3时,分数的值表示1秒的5/1000。

SQL> SELECT DATETIME2FROMPARTS(2023, 02, 20, 06, 10, 45, 5, 1) AS RESULT_1;  
SQL> SELECT DATETIME2FROMPARTS(2023, 02, 20, 06, 10, 45, 5, 2) AS RESULT_2;  
SQL> SELECT DATETIME2FROMPARTS(2023, 02, 20, 06, 10, 45, 5, 3) AS RESULT_3;

输出

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

+-----------------------+
| RESULT                |
+-----------------------+
| 2023-02-20 06:10:45.5 |
+-----------------------+

+------------------------+
| RESULT                 |
+------------------------+
| 2023-02-20 06:10:45.05 |
+------------------------+

+-------------------------+
| RESULT                  |
+-------------------------+
| 2023-02-20 06:10:45.005 |
+-------------------------+

示例

在这里,我们向函数的任何参数提供 无效 值会导致错误。

SQL> SELECT DATETIME2FROMPARTS(2023, 16, 45, 29, 76, 88, 5, 1) AS RESULT;

输出

当我们执行以上查询时,输出如下所示 –

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

示例

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

SQL> SELECT DATETIME2FROMPARTS(2023, null, null, null, 34, 30, 5, 1) AS RESULT;

输出

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

+--------+
| RESULT |
+--------+
| NULL   |
+--------+

示例

我们需要提供函数的所有五个参数。如果我们不提供它,函数将导致错误。

SQL> SELECT DATETIME2FROMPARTS(2023, 02, 20, 06, 10) AS RESULT;

输出

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

The datetime2fromparts function requires 8 argument(s).

示例

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

SQL> CREATE TABLE STUDENTS(ID INT NOT NULL, NAME VARCHAR (200) NOT NULL, YEARS VARCHAR (200) NOT NULL, MONTHS VARCHAR (200) NOT NULL, DAYS VARCHAR (200) NOT NULL, HOURS VARCHAR (200) NOT NULL, MINUTES VARCHAR (200) NOT NULL, SECONDS VARCHAR (200) NOT NULL);

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

SQL> INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(1, 'Dhruv', '2000', '02', '01', '14', '30', '00');
INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(2, 'Arjun', '2001', '05', '20', '02', '34', '45');
INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(3, 'Dev', '2000', '05', '25', '05', '56', '45');
INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(4, 'Riya', '2003', '01', '10', '17', '21', '23');
INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(5, 'Aarohi','1999', '12', '20', '23', '36', '54');
INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(6, 'Lisa', '2004', '07', '17', '10', '46', '13');
INSERT INTO STUDENTS(ID, NAME, YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS) VALUES(7, 'Roy', '2003', '09', '19', '04', '30', '00');

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

SQL> SELECT * FROM STUDENTS

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

+----+-------+-------+--------+------+-------+---------+---------+
| ID | NAME  | YEARS | MONTHS | DAYS | HOURS | MINUTES | SECONDS |
+----+-------+-------+--------+------+-------+---------+---------+
| 1  | Dhruv | 2000  | 02     | 01   | 14    | 30      | 00      |
| 2  | Arjun | 2001  | 05     | 20   | 02    | 34      | 45      |
| 3  | Dev   | 2000  | 05     | 25   | 05    | 56      | 45      |
| 4  | Riya  | 2003  | 01     | 10   | 17    | 21      | 23      |
| 5  | Aarohi| 1999  | 12     | 20   | 23    | 36      | 54      |
| 6  | Lisa  | 2004  | 07     | 17   | 10    | 46      | 13      |
| 7  | Roy   | 2003  | 09     | 19   | 04    | 30      | 00      |
+----+-------+-------+--------+------+-------+---------+---------+

在这里,我们使用以下查询将学生的所有datetime2值连接起来,以检索学生的出生日期和时间 –

SQL> SELECT NAME, DATETIME2FROMPARTS(YEARS, MONTHS, DAYS, HOURS, MINUTES, SECONDS, 0, 2) AS STUDENTS_BIRTH_DATE_AND_TIME FROM STUDENTS;

输出

当我们执行上述查询时,输出结果如下所示 –

+--------+------------------------------+
| NAME   | STUDENTS_BIRTH_DATE_AND_TIME |
+--------+------------------------------+
| Dhruv  | 2000-02-01 14:30:00.00       |
| Arjun  | 2001-05-20 02:34:45.00       |
| Dev    | 2000-05-25 05:56:45.00       |
| Riya   | 2003-01-10 17:21:23.00       |
| Aarohi | 1999-12-20 23:36:54.00       |
| Lisa   | 2004-07-17 10:46:13.00       |
| Roy    | 2003-09-19 04:30:00.00       |
+--------+------------------------------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程