mysql_INTERVAL函数的使用

1、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;

在这里插入图片描述
参数表
在这里插入图片描述

2、高级用法

格式:

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

猜你喜欢

转载自blog.csdn.net/qq_44275015/article/details/129929901
今日推荐