当前位置: 首页 > 工具软件 > real-interval > 使用案例 >

关于INTERVAL 函数的使用

易祯
2023-12-01

关于INTERVAL 函数的使用

一、 INTERVAL 表示某段时间【简单用法】
格式如下:
INTERVAL '时间' <year/month/day/hour/minute/second>
例子:
select sysdate - INTERVAL '10' YEAR as "10年前",
       sysdate - INTERVAL '10' MONTH as "10个月前",
       sysdate - interval '10' day as "10天前",
       sysdate - interval '10' hour as "10小时前",
       sysdate - interval '10' minute as "10分钟前",
       sysdate - interval '10' second as "10秒钟前",
       sysdate - 10 as "10天前",
       sysdate - 10 / 24 as "10小时前",
       sysdate - 10 / (24 * 60) as "10分钟前",
       sysdate - 10 / (24 * 3600) as "10秒钟前"
  from dual;
表达式说明
INTERVAL ‘10’ YEAR时间间隔为10年
INTERVAL ‘10’ MONTH时间间隔为10个月
INTERVAL ‘10’ DAY时间间隔为10天
INTERVAL ‘10’ HOUR时间间隔为10小时
INTERVAL ‘10’ HOUR时间间隔为10小时
INTERVAL ‘10’ MINUTE时间间隔为10分钟
INTERVAL ‘10’ SECOND时间间隔为10秒
二、高级用法
格式
INTERVAL '[+|-][y][-m]' [YEAR[( years_precision)])] [TO MONTH]
  • [+] 或 [-] 是一个可选的指示符,用来说明时间间隔是正数还是负数(默认为正数)。
  • y 是一个可选参数,表示时间间隔的年数部分。
  • m 是一个可选参数,表示时间间隔的月数部分。如果指定了年数和月数,必须在INTERVAL子句中包含TO MONTH。
  • year_precision是一个可选参数,用来说明年数的精度(默认为2)。
例子
# 返回一个时间段
SQL> select interval '1-3' year to month from dual;

INTERVAL'1-3'YEARTOMONTH
---------------------------------------------------------------------------
+01-03

# 可以进行运算操作
SQL> select sysdate + interval '1-3' year to month from dual;

SYSDATE+INTERVAL'1-
-------------------
2022-11-13 01:23:13

# 此处指定了duration列的精度为3,这就是说可以为该列的年数部分存储3位数字,所以报错提示:间隔的前导精度太小
SQL> select interval '2021' year(3) from dual;
select interval '2021' year(3) from dual
                *
ERROR at line 1:
ORA-01873: the leading precision of the interval is too small




 类似资料: