Oracle计算时间函数(numtodsinterval、numtoyminterval)

numtodsinterval(<x>,<c>) ,x是一个数字,c是一个字符串,
表明x的单位,这个函数把x转为interval day to second数据类型

常用的单位有 (‘day‘,‘hour‘,‘minute‘,‘second‘)

example

SQL> select sysdate,sysdate+numtodsinterval(3,‘hour‘) as res from dual;

SYSDATE             RES ------------------- -------------------

2007-09-05 01:45:34   2007-09-05 04:45:34

numtoyminterval 与numtodsinterval函数类似,将x转为interval year to month数据类型

常用的单位有‘year‘,‘month‘

example

SQL> select sysdate,sysdate+numtoyminterval(3,‘year‘) as res from dual;

SYSDATE             RES ------------------- -------------------

2007-09-05 01:54:53   2010-09-05 01:54:53

-----------------------------------------------------------------------------------------------------------------------

格式:NumToYMInterval(n, interval_unit);

n: 数值类型

interval_unit: ‘YEAR‘, ‘MONTH‘ ,或其他可以转换成这两个值之一的表达式

NumToYMInterval(1, ‘YEAR‘) :一年后的间隔

NumToYMInterval(-1, ‘MONTH‘): 一个月前

小数会被计算成整数后,再做计算:

select sysdate + numtoyminterval(0.1, ‘MONTH‘)  as future from dual;\

FUTURE

------------------

11-OCT-13

该函数的结果是:”INTERVAL YEAR TO MONTH literal“。不能与数值做运算。

select 1 + NumToYMInterval(1, ‘MONTH‘) from dual

Oracle会返回一个错误。

做日期运算时,这个函数非常有用。例如:取一个月后的日期:

select sysdate + NumToYMInterval(1, ‘MONTH‘) from dual;

时间: 2024-12-20 21:07:20

Oracle计算时间函数(numtodsinterval、numtoyminterval)的相关文章

ORACLE日期时间函数

ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:              yy two digits 两位年                显示值:07        yyy three digits 三位年                显示值:007        yyyy four digits 四位年                显示值:2007                    Month

oracle 日期时间函数

ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:              yy two digits 两位年                显示值:07        yyy three digits 三位年                显示值:007        yyyy four digits 四位年                显示值:2007                    Month

ORACLE日期时间函数大全

ORACLE日期时间函数大全    TO_DATE格式(以时间:2007-11-02   13:45:25为例) Year:              yy two digits 两位年                显示值:07        yyy three digits 三位年                显示值:007        yyyy four digits 四位年                显示值:2007 Month:              mm    numbe

oracle日期时间函数总结

经常写 sql 的同学应该会接触到一些 oracle 的日期时间函数, 例如: 财务软件或者人力资源软件需要按照每年, 每季度, 每月, 甚至每个星期来进行统计. 今天闲来没事, 特意从网上整理了一些资料, 以备日后查阅. 一.常用日期数据格式 1. 获取年的最后一位, 两位, 三位, 四位 select to_char(sysdate,'Y') from dual;    -- 获取年的最后一位 select to_char(sysdate,'YY') from dual;    -- 获取年

[转]ORACLE日期时间函数大全

TO_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:              yy two digits 两位年                显示值:07        yyy three digits 三位年                显示值:007        yyyy four digits 四位年                显示值:2007                    Month:             

oracle计算时间秒数差

--计算plsql处理时间差 --qzq declare time1 timestamp; --开始时间 time2 timestamp; --结束时间 sum1 number(9); --时间差(s) begin time1 := to_timestamp(to_char(sysdate,'yyyy-mm-dd hh24-mi-ss'),'yyyy-mm-dd hh24:mi:ss.ff9'); --处理任务 for i in 1..600000 loop select 1 into sum1

SQL创建计算时间函数

使用SQL函数 1 USE RDS 2 GO 3 4 --For ticket escaluation function. 5 insert into SystemSettings(Name,Value) VALUES('MaxBatchSize','10') 6 7 GO 8 9 10 /****** 对象: UserDefinedFunction [dbo].[CalcInterVal] 脚本日期: 07/04/2008 11:46:26 ******/ 11 IF EXISTS (SELE

Oracle计算时间差函数

两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒,毫秒): 天: ROUND(TO_NUMBER(END_DATE - START_DATE)) 小时: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24) 分钟: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60) 秒: ROUND(TO_NUMBER(END_DATE - START_DATE) *

【转】ORACLE日期时间 等函数大全

转自:ORACLE日期时间函数大全 ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02   13:45:25为例)           Year:              yy two digits 两位年                显示值:07        yyy three digits 三位年                显示值:007        yyyy four digits 四位年                显示值:2007