当前位置: 代码迷 >> 综合 >> Oracle INTERVAL(INTERVAL DAY TO SECOND,INTERVAL YEAR TO MONTH)数据类型的使用
  详细解决方案

Oracle INTERVAL(INTERVAL DAY TO SECOND,INTERVAL YEAR TO MONTH)数据类型的使用

热度:9   发布时间:2024-01-18 22:39:13.0

INTERVAL DAY TO SECOND数据类型


Oracle语法:
INTERVAL '{ integer | integer time_expr | time_expr }' 
{ { DAY | HOUR | MINUTE } [ ( leading_precision ) ]
| SECOND [ ( leading_precision [, fractional_seconds_precision ] ) ] }
[ TO { DAY | HOUR | MINUTE | SECOND [ (fractional_seconds_precision) ] } ]

leading_precision值的范围是0到9, 默认是2. time_expr的格式为:HH[:MI[:SS[.n]]] or MI[:SS[.n]] or SS[.n], n表示微秒.


范围值:
HOUR:    0 to 23
MINUTE: 0 to 59
SECOND: 0 to 59.999999999

eg:
INTERVAL '4 5:12:10.222' DAY TO SECOND(3)
表示: 4天5小时12分10.222秒

INTERVAL '4 5:12' DAY TO MINUTE
表示: 4天5小时12分

INTERVAL '400 5' DAY(3) TO HOUR 
表示: 400天5小时, 400为3为精度,所以"DAY(3)", 注意默认值为2.

INTERVAL '400' DAY(3)
表示: 400天

INTERVAL '11:12:10.2222222' HOUR TO SECOND(7)
表示: 11小时12分10.2222222秒

INTERVAL '11:20' HOUR TO MINUTE
表示: 11小时20分

INTERVAL '10' HOUR
表示: 10小时

INTERVAL '10:22' MINUTE TO SECOND 
表示: 10分22秒

INTERVAL '10' MINUTE 
表示: 10分

INTERVAL '4' DAY
表示: 4天

INTERVAL '25' HOUR
表示: 25小时

INTERVAL '40' MINUTE
表示: 40分

INTERVAL '120' HOUR(3) 
表示: 120小时

INTERVAL '30.12345' SECOND(2,4)     
表示: 30.1235秒, 因为该地方秒的后面精度设置为4, 要进行四舍五入.

INTERVAL '20' DAY - INTERVAL '240' HOUR = INTERVAL '10-0' DAY TO SECOND

表示: 20天 - 240小时 = 10天0秒


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个月



  相关解决方案