SQL TIMEFROMPARTS()函数
SQL的 TIMEFROMPARTS() 函数用于从单独的部分构建时间值。
该函数接受五个参数,如小时、分钟、秒、分数和精度,并返回表示指定时间的时间值。
- 如果作为参数的值无效,该函数将导致错误。
-
如果任何参数为空,则返回结果为空。
-
如果缺少任何参数,将返回错误。
语法
以下是SQL中 TIMEFROMPARTS() 函数的语法:
TIMEFROMPARTS(hour, minute, seconds, fractions, precision)
参数
此函数接受五个参数。以下是描述:
- hour - 指定时间值的小时部分。
-
minute - 指定时间值的分钟部分。
-
seconds - 指定时间值的秒钟部分。
-
fractions - 指定时间值的分数部分。
-
precision - 指定要返回的时间值的精度。
示例
让我们尝试使用以下查询构建一个不包含秒的时间值:
SQL> SELECT TIMEFROMPARTS(16, 45, 20, 0, 0) AS RESULT;
输出
在执行上面的查询时,输出如下所示 –
+----------+ | RESULT | +----------+ | 16:45:20 | +----------+
示例
让我们尝试使用TIMEFROMPARTS()函数的分数和精度参数:
- 当分数值为5且精度值为1时,分数的值表示1/10秒。
-
当分数值为5且精度值为2时,分数的值表示1/100秒。
-
当分数值为5且精度值为3时,分数的值表示1/1000秒。
SQL> SELECT TIMEFROMPARTS(16, 45, 20, 5, 1) AS RESULT_1; SELECT TIMEFROMPARTS(16, 45, 20, 5, 2) AS RESULT_2; SELECT TIMEFROMPARTS(16, 45, 20, 5, 3) AS RESULT_3;
错误
如果我们执行程序,结果如下所示 –
+------------+ | RESULT_1 | +------------+ | 16:45:20.5 | +------------+ +-------------+ | RESULT_2 | +-------------+ | 16:45:20.05 | +-------------+ +--------------+ | RESULT_3 | +--------------+ | 16:45:20.005 | +--------------+
示例
如果我们向函数的任何参数提供无效值,将会导致错误。
SQL> SELECT TIMEFROMPARTS(16, 4567876, 20, 843567886, 3) AS RESULT;
错误
当我们执行以上查询时,输出结果如下:
Cannot construct data type time, some of the arguments have values which are not valid.
示例
如果我们将函数的任何参数都设为null,则函数的结果也会是null。
SQL> SELECT TIMEFROMPARTS(16, null, 20, null, 3) AS RESULT;
输出
当我们执行上面的查询时,输出结果如下:
+--------+ | RESULT | +--------+ | NULL | +--------+
示例
我们需要提供函数的所有五个参数。如果我们不提供参数,函数将会报错。
SQL> SELECT TIMEFROMPARTS(16, 30, 20, 45) AS RESULT;
输出
如果我们执行上述查询,结果如下所示 –
The timefromparts function requires 5 argument(s).
示例
假设我们使用以下查询语句使用CREATE语句在SQL数据库中创建了名为STUDENTS的表:
SQL> CREATE TABLE STUDENTS(ID INT NOT NULL, NAME VARCHAR (200) NOT NULL, HOURS VARCHAR (200) NOT NULL, MINUTES VARCHAR (200) NOT NULL, SECONDS VARCHAR (200) NOT NULL)
现在,让我们使用下面的查询语句在STUDENTS表中插入一些记录-
SQL> INSERT INTO STUDENTS(ID, NAME, HOURS, MINUTES, SECONDS) VALUES(1, 'Dhruv', '02', '25', '45'); INSERT INTO STUDENTS(ID, NAME, HOURS, MINUTES, SECONDS) VALUES(2, 'Arjun', '05', '45', '20'); INSERT INTO STUDENTS(ID, NAME, HOURS, MINUTES, SECONDS) VALUES(3, 'Dev', '06','30', '30'); INSERT INTO STUDENTS(ID, NAME, HOURS, MINUTES, SECONDS) VALUES(4, 'Riya', '10', '15', '50'); INSERT INTO STUDENTS(ID, NAME, HOURS, MINUTES, SECONDS) VALUES(5, 'Aarohi', '12', '00', '00'); INSERT INTO STUDENTS(ID, NAME, HOURS, MINUTES, SECONDS) VALUES(6, 'Lisa', '16', '45', '25'); INSERT INTO STUDENTS(ID, NAME, HOURS, MINUTES, SECONDS) VALUES(7, 'Roy', '18', '10', '10');
我们可以使用以下查询验证表格是否已创建:
SQL> SELECT * FROM STUDENTS
表格 STUDENTS 在 SQL 数据库中成功创建。
+-----+--------+-------+---------+---------+ | ID | NAME | HOURS | MINUTES | SECONDS | +-----+--------+-------+---------+---------+ | 1 | Dhruv | 02 | 25 | 45 | | 2 | Arjun | 05 | 45 | 20 | | 3 | Dev | 06 | 30 | 30 | | 4 | Riya | 10 | 15 | 50 | | 5 | Aarohi | 12 | 00 | 00 | | 6 | Lisa | 16 | 45 | 25 | | 7 | Roy | 18 | 10 | 10 | +-----+--------+-------+---------+---------+
在这里,我们尝试使用以下查询将所有学生的时间值连接起来。
SQL> SELECT *, TIMEFROMPARTS(HOURS, MINUTES, SECONDS, 0, 5) AS TIMEFROMPARTS_VALUE FROM STUDENTS;
输出
执行上述查询时,输出结果如下:
+-----+--------+--------+---------+---------+---------------------+ | ID | NAME | HOURS | MINUTES | SECONDS | TIMEFROMPARTS_VALUE | +-----+--------+--------+---------+---------+---------------------+ | 1 | Dhruv | 02 | 25 | 45 | 02:25:45.00000 | | 2 | Arjun | 05 | 45 | 20 | 05:45:20.00000 | | 3 | Dev | 06 | 30 | 30 | 06:30:30.00000 | | 4 | Riya | 10 | 15 | 50 | 10:15:50.00000 | | 5 | Aarohi | 12 | 00 | 00 | 12:00:00.00000 | | 6 | Lisa | 16 | 45 | 25 | 16:45:25.00000 | | 7 | Roy | 18 | 10 | 10 | 18:10:10.00000 | +-----+--------+--------+---------+---------+---------------------+
版权声明:本页面内容旨在传播知识,为用户自行发布,若有侵权等问题请及时与本网联系,我们将第一时间处理。E-mail:284563525@qq.com