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;

 

posted @   寒星月冷  阅读(17694)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示