INTERVAL YEAR TO MONTH数据类型

简介:
INTERVAL 'integer [- integer]' {YEAR | MONTH} [(precision)][TO {YEAR | MONTH}]

该数据类型常用来表示一段时间差, 注意时间差只精确到年和月. precision为年或月的精确域, 有效范围是0到9, 默认值为2.

eg:
INTERVAL '123-2' YEAR(3) TO MONTH    
表示: 123年2个月, "YEAR(3)" 表示年的精度为3, 可见"123"刚好为3为有效数值, 如果该处YEAR(n), n<3就会出错, 注意默认是2.

INTERVAL '123' YEAR(3)
表示: 123年0个月

INTERVAL '300' MONTH(3)
表示: 300个月, 注意该处MONTH的精度是3啊.

INTERVAL '4' YEAR    
表示: 4年, 同 INTERVAL '4-0' YEAR TO MONTH 是一样的

INTERVAL '50' MONTH    
表示: 50个月, 同 INTERVAL '4-2' YEAR TO MONTH 是一样

INTERVAL '123' YEAR    
表示: 该处表示有错误, 123精度是3了, 但系统默认是2, 所以该处应该写成 INTERVAL '123' YEAR(3) 或"3"改成大于3小于等于9的数值都可以的

INTERVAL '5-3' YEAR TO MONTH + INTERVAL '20' MONTH =
INTERVAL '6-11' YEAR TO MONTH
表示: 5年3个月 + 20个月 = 6年11个月

与该类型相关的函数:
NUMTODSINTERVAL(n, 'interval_unit')
将n转换成interval_unit所指定的值, interval_unit可以为: DAY, HOUR, MINUTE, SECOND
注意该函数不可以转换成YEAR和MONTH的.

NUMTOYMINTERVAL(n, 'interval_unit')
interval_unit可以为: YEAR, MONTH

eg: (Oracle Version 9204,  RedHat   Linux  9.0)
SQL> select numtodsinterval(100,'DAY') from dual;

NUMTODSINTERVAL(100,'DAY')                                                                                                       
---------------------------------------------------------------------------     
+000000100 00:00:00.000000000                                                                                                 

SQL> c/DAY/SECOND
1* select numtodsinterval(100,'SECOND') from dual
SQL> /

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

SQL> c/SECOND/MINUTE
1* select numtodsinterval(100,'MINUTE') from dual
SQL> /

NUMTODSINTERVAL(100,'MINUTE')                



本文转自einyboy博客园博客,原文链接:http://www.cnblogs.com/einyboy/archive/2012/08/06/2624886.html,如需转载请自行联系原作者。



目录
相关文章
new Date()
new Date()
81 0
|
存储 JavaScript 前端开发
new Date(dateString)
new Date(dateString)
82 0
|
存储 关系型数据库 MySQL
MySQL中date、datetime、timestamp、time、year的区别
MySQL中date、datetime、timestamp、time、year的区别
126 0
|
Go
New Year and Hurry
New Year and Hurry
73 0
New Year and Hurry
|
SQL 缓存 监控
面试题:能谈谈Date、Datetime、Time、Timestamp、year的区别吗?
如果面试官问你:了解 date、datetime、time、timestamp、year 有什么区别吗? 其实大概率就是看你曾经用过哪些,以及有没有留心对比它们的异同。如果你没有时间去做一下小实验,没关系!大概浏览一下我下面的小Case就OK了。
135 0
|
机器学习/深度学习 算法 数据挖掘
week3
6 逻辑回归(Logistic Regression) 6.1 分类(Classification) 6.2 假设函数表示(Hypothesis Representation) 6.
1237 0