oracle中interval函数用法详解

一、interval函数
interval函数用于将一个整形值转换成时间值date类型的年月或时分秒。

oracle语法:

interval 'integer [- integer]' {YEAR | MONTH | DAY | HOUR | MINUTE | SECOND} [(precision)][TO {YEAR | MONTH | DAY | HOUR | MINUTE | SECOND}]

注:
1、年、月、日、时、分、秒可以单独使用。
2、{YEAR | MONTH} to {YEAR | MONTH}和
{DAY | HOUR | MINUTE | SECOND} to {DAY | HOUR | MINUTE | SECOND}是分别使用。
3、该函数常用来计算一段时间差。
4、precision为精度域,有效范围是0到9,默认值为2。这里精度是指显示结果的精度,如果结果超过两位长度要指定精度。

例子:
1、表示2个年

select interval '2' year from dual;

INTERVAL'2'YEAR
---------------------------------------------------------------------------
+02-00

2、表示1234个年

select interval '1234' year(4) from dual;

INTERVAL'1234'YEAR(4)
---------------------------------------------------------------------------
+1234-00

3、表示120个月
1)不加精度

select interval '120' month from dual;

INTERVAL'120'MONTH
---------------------------------------------------------------------------
+10-00

2)加精度

select interval '120' month(3) from dual;

INTERVAL'120'MONTH(3)
---------------------------------------------------------------------------
+010-00

4、表示2天

select interval '2' day from dual;

INTERVAL'2'DAY
---------------------------------------------------------------------------
+02 00:00:00

5、时、分、秒的单独用法以此类推

6、表示一个具体的时间(日到秒)

select interval '2 12:00:59' day to second from dual;

INTERVAL'212:00:59'DAYTOSECOND
---------------------------------------------------------------------------
+02 12:00:59.000000

7、表示一个具体的时间(年到月)

select interval '21-10' year to month from dual;

INTERVAL'21-10'YEARTOMONTH
---------------------------------------------------------------------------
+21-10

二、numtodsinterval
numtodsinterval函数,用于将整数转换成时间值date类型的日、时、分、秒。

语法:

numtodsinterval(n, 'interval_unit')

n为整数,interval_unit可以为day,hour,minute,second。该函数不能转换为year和month。

例子:
1、表示100秒

select numtodsinterval(100, 'second') from dual;

NUMTODSINTERVAL(100,'SECOND')
---------------------------------------------------------------------------
+000000000 00:01:40.000000000

2、表示200分钟

select numtodsinterval(200, 'minute') from dual;

NUMTODSINTERVAL(200,'MINUTE')
---------------------------------------------------------------------------
+000000000 03:20:00.000000000

3、表示60个小时

select numtodsinterval(60, 'hour') from dual;

NUMTODSINTERVAL(60,'HOUR')
---------------------------------------------------------------------------
+000000002 12:00:00.000000000

4、表示80个天

select numtodsinterval(80, 'day') from dual;

NUMTODSINTERVAL(80,'DAY')
---------------------------------------------------------------------------
+000000080 00:00:00.000000000

三、numtoyminterval
numtoyminterval函数,用于将整数转换成时间值date类型的年、月。

语法:

numtoyminterval(n, 'interval_unit')

n为整数,interval_unit可以为year,month。

例子:
1、表示1234年

select numtoyminterval(1234, 'year') from dual;

NUMTOYMINTERVAL(1234,'YEAR')
---------------------------------------------------------------------------
+000001234-00

2、表示120个月

select numtoyminterval(120, 'month') from dual;

NUMTOYMINTERVAL(120,'MONTH')
---------------------------------------------------------------------------
+000000010-00

从例子可以看出numtodsinterval函数、numtoyminterval函数和interval函数加上精度后的效果是一样的。

四、函数的作用
那么问题来了,这些时间转换函数的作用在哪里呢?
如果我们要计算一个date类型的值加上100秒、200分钟、80小时、60天、18个月、21年,就可以使用这些函数来进行计算。

例子:
1、

select sysdate, sysdate + interval '20' day as res from dual;

SYSDATE  RES
--------------- ---------------
22-MAR-16 11-APR-16

2、

select sysdate, sysdate + numtoyminterval(3,'year') as res from dual;

SYSDATE  RES
--------------- ---------------
22-MAR-16 22-MAR-19

时间: 2024-08-26 02:02:26

oracle中interval函数用法详解的相关文章

JavaScript中eval()函数用法详解_javascript技巧

eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行. 如果参数是一个表达式,eval() 函数将执行表达式.如果参数是Javascript语句,eval()将执行 Javascript 语句. 语法 复制代码 代码如下: eval(string) 参数 描述 string 必需.要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句. eval()函数用法详解: 此函数可能使用的频率并不是太高,但是在某些情况下具有很大的作用,下面就介绍一下eva

AngularJS中$interval的用法详解_AngularJS

在AngularJS中$interval用来处理间歇性处理一些事情. 最常用的是: var app = angular.module("app",[]); app.controller("AppCtrl", function($q. $interval){ var timer = $interval(function(){ },100); timer.then(success); function success(){ console.log("done&

SQLServer中merge函数用法详解_MsSql

Merge关键字是一个神奇的DML关键字.它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句.MSDN对于Merge的解释非常的短小精悍:"根据与源表联接的结果,对目标表执行插入.更新或删除操作. MERGE 目标表 USING 源表 ON 匹配条件 WHEN MATCHED THEN 语句 WHEN NOT MATCHED THEN 语句; 其中最后语句分号不可以省略,且源表既可以是一个表也可以是一个子查询语句 WHEN NOT MATCHE

ASP中FormatDateTime函数用法详解

FormatDateTime 函数 返回表达式,此表达式已被格式化为日期或时间. FormatDateTime(Date[, NamedFormat]) 参数 参数 描述 date Required. Any valid date expression (like Date() or Now()) 必选项.要被格式化的日期表达式.(如Date()或Now()) format Optional. A Format value that specifies the date/time format

oracle中distinct的用法详解_oracle

下面先来看看例子: table表 字段1     字段2    id        name    1           a    2           b    3           c    4           c    5           b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. 比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录. select distinct name from table 得到的结果

php中Ctype函数用法详解

  本文实例分析了php中Ctype函数用法.分享给大家供大家参考.具体分析如下: Ctype函数是Php的Ctype扩展函数提供了一组函数用于校验字符串中的字符是否是正确的格式,这里我们主要介绍一下这些字符串验证函数的语法.有什么特殊的函数,如何去验证等. Ctype函数是PHP内置的字符串体测函数,主要有以下几种: ctype_alnum -- Check for alphanumeric character(s):检测是否是只包含[A-Za-z0-9] ctype_alpha -- Che

php中Ctype函数用法详解_php技巧

本文实例分析了php中Ctype函数用法.分享给大家供大家参考.具体分析如下: Ctype函数是Php的Ctype扩展函数提供了一组函数用于校验字符串中的字符是否是正确的格式,这里我们主要介绍一下这些字符串验证函数的语法.有什么特殊的函数,如何去验证等. Ctype函数是PHP内置的字符串体测函数,主要有以下几种: ctype_alnum -- Check for alphanumeric character(s):检测是否是只包含[A-Za-z0-9] ctype_alpha -- Check

php中strtotime函数用法详解_php技巧

本文实例讲述了php中strtotime函数用法.分享给大家供大家参考.具体如下: strtotime(字符串$时间[,诠释$现在])int strtotime(string $time [,int $now] 该函数期望得到一个包含美国英语日期格式,并会尝试解析成一个Unix时间戳(多少秒自1970年1月1日00:00:00星期一该格式),相对于现在提供的时间戳,或当前时间如果现在不提供 这个函数将使用TZ环境变量(如果有)来计算时间戳,自PHP 5.1.0有更容易的方法来确定所使用的所有/日

C++中memset函数用法详解_C 语言

本文实例讲述了C++中memset函数用法.分享给大家供大家参考,具体如下: 功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void memset(void *s, char ch, unsigned n); 程序示例: #include <string.h> #include <stdio.h> #include <memory.h> int main(v