Oracle EXTRACT()函数

本文介绍了 Oracle 数据库中 EXTRACT 函数的使用方法及示例,该函数可用于从 DATE 或 INTERVAL 类型中提取特定部分,如年份、月份等,并展示了如何利用此函数计算两个日期之间的间隔。
//oracle中extract()函数从oracle 9i中引入,用于从一个date或者interval类型中截取到特定的部分
  1. //语法如下:
  2. EXTRACT (
  3. { YEAR | MONTH | DAY | HOUR | MINUTE | SECOND }
  4. | { TIMEZONE_HOUR | TIMEZONE_MINUTE }
  5. | { TIMEZONE_REGION | TIMEZONE_ABBR }
  6. FROM { date_value | interval_value } )
  7. //我们只可以从一个date类型中截取 year,month,day(date日期的格式为yyyy-mm-dd);
  8. //我们只可以从一个 timestamp with time zone 的数据类型中截取TIMEZONE_HOUR和TIMEZONE_MINUTE;
  9. select extract(year from date'2011-05-17') year from dual;
  10. YEAR
  11. ----------
  12. 2011
  13. select extract(month from date'2011-05-17') month from dual;
  14. MONTH
  15. ----------
  16. 5
  17. select extract(day from date'2011-05-17') day from dual;
  18. DAY
  19. ----------
  20. 17
  21. //获取两个日期之间的具体时间间隔,extract函数是最好的选择
  22. select extract(day from dt2-dt1) day
  23. ,extract(hour from dt2-dt1) hour
  24. ,extract(minute from dt2-dt1) minute
  25. ,extract(second from dt2-dt1) second
  26. from (
  27. select to_timestamp('2011-02-04 15:07:00','yyyy-mm-dd hh24:mi:ss') dt1
  28. ,to_timestamp('2011-05-17 19:08:46','yyyy-mm-dd hh24:mi:ss') dt2
  29. from dual)
  30. /
  31. DAY HOUR MINUTE SECOND
  32. ---------- ---------- ---------- ----------
  33. 102 4 1 46
  34. --
  35. select extract(year from systimestamp) year
  36. ,extract(month from systimestamp) month
  37. ,extract(day from systimestamp) day
  38. ,extract(minute from systimestamp) minute
  39. ,extract(second from systimestamp) second
  40. ,extract(timezone_hour from systimestamp) th
  41. ,extract(timezone_minute from systimestamp) tm
  42. ,extract(timezone_region from systimestamp) tr
  43. ,extract(timezone_abbr from systimestamp) ta
  44. from dual
  45. /
  46. YEAR MONTH DAY MINUTE SECOND TH TM TR TA
  47. ---------- ---------- ---------- ---------- ---------- ---------- ---------- --------- ----------
  48. 2011 5 17 7 14.843 8 0 UNKNOWN UNK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值