oracle interval year to month,时间类型 interval

本文详细介绍了Oracle数据库中的INTERVAL YEARTOMONTH和INTERVAL DAYTOSECOND数据类型,包括它们的语法、使用示例及精度设置。INTERVAL YEARTOMONTH用于表示年月的时间间隔,而INTERVAL DAYTOSECOND则用于表示天、小时、分钟和秒的时间间隔。通过这些数据类型,可以精确地表示和操作时间差。
摘要由CSDN通过智能技术生成

一、INTERVAL YEAR TO MONTH 数据类型

Oracle语法:

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

——————————————————————————————————————————————

二、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表示微秒.

该类型与INTERVAL YEAR TOMONTH有很多相似的地方,建议先看INTERVAL YEAR TO MONTH再看该文.

范围值:

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秒

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值