转自:https://blog.csdn.net/weixin_28775381/article/details/116388045
在学习Oracle数据库的过程中,难免会有一些截取年月日或者获取两个日期之间的具体时间间隔或者获取interval类型特定部分的相关问题,那么下面的extract()就将派上用场了!
oracle中extract()函数从oracle 9i中引入的,主要作用于一个date或者interval类型中截取特定的部分
extract()语法如下:
extract (
{ year | month | day | hour | minute |second | 某一时区 }
from { date类型值 |interval类型值} )
要点一:extract()只能从一个date类型中截取年月日
实例:
Select extract(year from sysdate) year ,extract(month from sysdate) month,extract(day from sysdate) day from dual;
结果:
Year 2019
Month 4
Day 17
要点二:extract()获取两个日期之间的具体时间间隔
实例:
Select extract(year from to_date(‘2009-05-25’,’yyyy-mm-dd’))– extract(year from to_date(‘2008-04-2’,’yyyy-mm-dd’)) years, extract(monthfrom to_date(‘2009-05-25’,’yyyy-mm-dd’)) – extract(month from to_date(‘2008-04-2’,’yyyy-mm-dd’))month, extract(day from to_date(‘2009-05-25’,’yyyy-mm-dd’)) – extract(day fromto_date(‘2008-04-2’,’yyyy-mm-dd’)) day from dual;
结果:
Years 1
Month 1
Day 23
要点三:获取interval类型特定部分
实例:
Select extract(year from interval ‘21’ year)year from dual
结果:
Year 21
以上三要点为重点!!!