1.sysdate:返回系统当前时间

函数说明】:该函数返回系统当前时间,没有参数,不带括号。

样例展示】:

select sysdate from dual;        --获取系统当前时间:2022-02-19 10:12:22
select to_char(sysdate,'yyyy-mm-dd HH24:mi:ss') from dual;        --按指定格式获取当前时间:2022-02-19 10:12:22
select to_char(sysdate,'yyyy') from dual;        --获取当前年份:2022
select to_char(sysdate,'mm') from dual;        --获取当前月份:02
select to_char(sysdate,'hh24') from dual;        --获取当前小时(24小时制):10
select to_char(sysdate,'hh') from dual;        --获取当前小时(12小时制):10
select to_char(sysdate,'mi') from dual;        --获取当前分钟:12
select to_char(sysdate,'ss') from dual;        --获取当前秒:22
select sysdate + interval '1' year from dual;        --当前时间加上1年:2023-02-19 10:12:22
select sysdate - interval '1' year from dual;        --当前时间减去1年:2021-02-19 10:12:22
select sysdate + interval '1' month from dual;        --当前时间加上1个月:2022-03-19 10:12:22
select sysdate - interval '1' month from dual;        --当前时间减去1个月:2022-01-19 10:12:22
select sysdate + interval '1' day from dual;        --当前时间加上1天:2022-02-20 10:12:22
select sysdate - interval '1' day from dual;        --当前时间减去1天:2022-02-18 10:12:22
select sysdate + interval '1' hour from dual;        --当前时间加上1小时:2022-02-19 11:12:22
select sysdate - interval '1' hour from dual;        --当前时间减去1小时:2022-02-19 9:12:22
select sysdate + interval '1' minute from dual;        --当前时间加上1分钟:2022-02-19 10:13:22
select sysdate - interval '1' minute from dual;        --当前时间减去1分钟:2022-02-19 10:11:22
select sysdate + interval '1' second from dual;        --当前时间加上1秒钟:2022-02-19 10:12:23
select sysdate - interval '1' second from dual;        --当前时间减去1秒钟:2022-02-19 10:12:21

2.interval:返回一段时间间隔

  • 【用法一:返回一段只精确到年和月的时间间隔】

        【函数格式】:interval 'integer[-integer]' {year|month} [(precision)][to{year|month}]

【函数说明】:该函数返回一段时间间隔,时间间隔只精确到年和月,precision为年或月的精确域,有效范围是0到9,若省略该参数,则默认为2。

【注意事项】

(1).precision为年或月的精确域,有效范围为0至9,若省略该参数,则默认为2。

(2).当参数precision有值时,若该参数跟在year后面,则不能小于表示年的参数integer的位数,若该参数跟在month后面,则不能小于表示月的参数integer值换算成年数值的位数,否则执行时会报错“间隔的前导精度太小”。

(3).当省略表示月的参数integer时,则也可以省略[to{year|month}]部分,若[to{year|month}]有值,则必须与{year|month}保持一致,即必须是year to year或month to month的形式。

样例展示一】:该函数不同形式的写法以及返回结果

select interval '56' year from dual;        --返回:+56-00(表示56年)
select interval '56' year(1) from dual;        --报错【间隔的前导精度太小】
select interval '567' year from dual;        --报错【间隔的前导精度太小】
select interval '567' year(3) from dual;        --返回:+567-00(表示567年0个月)
select interval '56' month from dual;        --大于等于12则返回年月:+04-08(表示4年8个月)
select interval '56' month(1) from dual;        --返回:+4-08(表示4年8个月)【此处精度1针对56换算成的年数4】
select interval '567' month(1) from dual;        --报错【间隔的前导精度太小】【此处精度1针对567换算成的年数47】
select interval '567' month(2) from dual;        --返回:+47-03【此处精度2针对567换算成的年数47】
select interval '567-5' year(3) to month from dual;        --返回:+567-05(表示567年5个月)
select interval '567-5' year(4) to month from dual;        --返回:+0567-05(表示567年5个月)
select interval '567-5' year to month from dual;        --报错【间隔的前导精度太小】
select interval '56-5' year to month from dual;        --返回:+56-05(表示56年5个月)
select interval '56' year to year from dual;        --返回:+56-00(表示56年)
select interval '56-0' year to month from dual;        --返回:+56-00表示56年)】                select interval '56' month to month from dual;        --返回:+04-08(表示4年8个月)

样例展示二】:多个时间间隔之间做加法运算

select interval '1' year + interval '2' month from dual;        --返回:+000000001-02
select interval '1' year + interval '20' month from dual;        --返回:+000000002-08
select interval '1' year + interval '1' year from dual;        --返回:+000000002-00
select interval '1' month + interval '1' month from dual;        --返回:+000000000-02
select interval '1-0' year to month + interval '1' month from dual;        --返回:+000000001-01
select interval '1-0' year to month + interval '1-0' year to month from dual;        --返回:+000000002-00
select interval '1-0' year to month + interval '1' year from dual;        --返回:+000000002-00

样例展示三】:多个时间间隔之间做减法运算

select interval '1' year - interval '2' month from dual;        --返回:+000000000-10
select interval '1' year - interval '20' month from dual;        --返回:-000000000-08
select interval '1' year - interval '1' year from dual;        --返回:+000000000-00
select interval '1' month - interval '1' month from dual;        --返回:+000000000-00
select interval '1-0' year to month - interval '1' month from dual;        --返回:+000000000-11
select interval '2-0' year to month - interval '1-0' year to month from dual;        --返回:+000000001-00
select interval '2-5' year to month - interval '1' year from dual;        --返回:+000000001-05

  • 【用法二:返回一段精确到时分秒的时间间隔】

        【函数格式】: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]]] 或 MI[:SS[.n]] 或 SS[.n],n表示微秒。
hour范围为0至23,minute范围为: 0至59,second范围为: 0至59.999999999。

样例展示一】:展示以day开头的用法

select interval '1' day from dual;        --返回:+01 00:00:00(表示: 1天)
select interval '1' day(3) from dual;        --返回:+001 00:00:00(表示: 1天)
select interval '1 2' day(1) to hour from dual;        --返回:+1 02:00:00(表示: 1天2小时)
select interval '1 2:10' day(2) to minute from dual;        --返回:+01 02:10:00(表示: 1天2小时10分)
select interval '1 2:10:30.555' day to second from dual;        --返回:+01 02:10:30.555000(表示: 1天2小时10分30.555秒)
select interval '1 2:10:30.555' day to second(5) from dual;        --返回:+01 02:10:30.55500(表示: 1天2小时10分30.555秒)
select interval '1 2:10:30.555' day to second(3) from dual;        --返回:+01 02:10:30.555(表示: 1天2小时10分30.555秒)
select interval '1 2:10:30.555' day(1) to second(3) from dual;        --返回:+1 02:10:30.555(表示: 1天2小时10分30.555秒)
select interval '1 2:10:30.555' day(3) to second(2) from dual;        --返回:+001 02:10:30.56(表示: 1天2小时10分30.56秒)

样例展示二】:展示以hour开头的用法

select interval '2' hour from dual;        --返回:+00 02:00:00(表示: 2小时)
select interval '2' hour(3) from dual;        --返回:+000 02:00:00(表示: 2小时)
select interval '2:10' hour(3) to minute from dual;        --返回:+000 02:10:00(表示: 2小时10分)
select interval '2:10:30.555' hour(3) to second from dual;        --返回:+000 02:10:30.555000(表示: 2小时10分30.555秒)
select interval '2:10:30.555' hour to second(3) from dual;        --返回:+00 02:10:30.555(表示: 2小时10分30.555秒)
select interval '2:10:30.555' hour to second(1) from dual;        --返回:+00 02:10:30.6(表示: 2小时10分30.6秒)

样例展示三】:展示以minute开头的用法

select interval '10' minute from dual;        --返回:+00 00:10:00(表示: 10分钟)
select interval '10' minute(3) from dual;        --返回:+000 00:10:00(表示: 10分钟)
select interval '10:30.555' minute(3) to second from dual;        --返回:+000 00:10:30.555000(表示: 10分30.555秒)
select interval '10:30.555' minute to second(3) from dual;        --返回:+00 00:10:30.555(表示: 10分30.555秒)
select interval '10:30.555' minute to second(1) from dual;        --返回:+00 00:10:30.6(表示: 10分30.6秒)

样例展示四】:展示以second开头的用法

select interval '30.555' second from dual;        --返回:+00 00:00:30.555000
select interval '30.555' second(1) from dual;        --返回:+0 00:00:30.555000
select interval '30.555' second(3) from dual;        --返回:+000 00:00:30.555000

样例展示五】:展示多个时间间隔的加减法运算

select interval '1' day + interval '1' day from dual;        --返回:+000000002 00:00:00.000000000
select interval '1' day + interval '2' hour from dual;        --返回:+000000001 02:00:00.000000000
select interval '2' hour - interval '2' hour from dual;        --返回:+000000000 00:00:00.000000000
select interval '2' hour - interval '10' minute from dual;        --返回:+000000000 01:50:00.000000000

3.add_months:返回指定日期进行加减运算后的结果

【函数格式】:add_months(dateTime,intNum)

【函数说明】:该函数返回时间参数dateTime加上月份intNum后的结果,intNum可以为负数。

【样例展示】:

select add_months(sysdate,1) from dual;        --返回:2022/3/19 13:25:19
select add_months(sysdate,1.5) from dual;        --返回:2022/3/19 13:25:19
select add_months(sysdate,-1) from dual;        --返回:2022/1/19 13:25:19
select add_months(sysdate,-1.5) from dual;        --返回:2022/1/19 13:25:19

4.months_between:返回两个日期之间的月份数

【函数格式】:months_between(startDate,endDate)

【函数说明】:该函数返回两个日期startDate和endDate之间的月份数,当startDate大于endDate时,返回正数,当startDate小于endDate时,返回负数,当startDate等于endDate时,返回0。

【样例展示】:

select months_between(to_date('20220219', 'yyyymmdd'), to_date('20250219', 'yyyymmdd')) from dual;        --返回:-36
select months_between(to_date('20250219', 'yyyymmdd'), to_date('20220219', 'yyyymmdd')) from dual;        --返回:36
select months_between(to_date('20220219', 'yyyymmdd'), to_date('20220219', 'yyyymmdd')) from dual;        --返回:0
select months_between(to_date('20220220', 'yyyymmdd'), to_date('20220219', 'yyyymmdd')) from dual;        --返回:0.032258064516129
select months_between(to_date('20220320', 'yyyymmdd'), to_date('20220219', 'yyyymmdd')) from dual;        --返回:1.03225806451613
select months_between(to_date('20220320', 'yyyymmdd'), to_date('20220819', 'yyyymmdd')) from dual;        --返回:-4.96774193548387

5.last_day:返回指定时间所在月份的最后一天

【函数格式】:last_day(dateTime)

【函数说明】:该函数返回时间参数dateTime所在月份的最后一天。

【样例展示】:

select last_day(sysdate) from dual;        --返回:2022/2/28 14:12:04
select last_day(to_date('2022/2/12','yyyy-mm-dd')) from dual;        --返回:2022/2/28
select last_day(to_date('2022/2/12 14:12:04','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:2022/2/28 14:12:04
select last_day(to_date('2022/2','yyyy-mm')) from dual;        --返回:2022/2/28
select last_day(to_date('2022/3','yyyy-mm')) from dual;        --返回:2022/3/31
select last_day(to_date('2022/4','yyyy-mm')) from dual;        --返回:2022/4/30

6.next_day:返回指定参数的下一个日期

【函数格式】:next_day(dateTime[,dateFormat])

【函数说明】:若参数dateFormat小于dateTime对应的星期数,则返回下周的相应日期;若参数dateFormat大于dateTime对应的星期数,则返回本周的相应日期。

【参数说明】:参数dateTime为时间类型,参数dateFormat为字符型,该参数可选。

参数dateFormat取值范围:星期一至星期日。

【样例展示一】:dateTime对应星期三时。

select next_day(to_date('2022/2/16 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期一') from dual;        --返回:2022/2/21 16:07:43
select next_day(to_date('2022/2/16 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期二') from dual;        --返回:2022/2/22 16:07:43
select next_day(to_date('2022/2/16 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期三') from dual;        --返回:2022/2/23 16:07:43
select next_day(to_date('2022/2/16 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期四') from dual;        --返回:2022/2/17 16:07:43
select next_day(to_date('2022/2/16 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期五') from dual;        --返回:2022/2/18 16:07:43
select next_day(to_date('2022/2/16 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期六') from dual;        --返回:2022/2/19 16:07:43
select next_day(to_date('2022/2/16 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期日') from dual;        --返回:2022/2/20 16:07:43

【样例展示二】:dateTime对应星期六时。

select next_day(to_date('2022/2/19 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期一') from dual;        --返回:2022/2/21 16:07:43
select next_day(to_date('2022/2/19 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期二') from dual;        --返回:2022/2/22 16:07:43
select next_day(to_date('2022/2/19 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期三') from dual;        --返回:2022/2/23 16:07:43
select next_day(to_date('2022/2/19 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期四') from dual;        --返回:2022/2/24 16:07:43
select next_day(to_date('2022/2/19 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期五') from dual;        --返回:2022/2/25 16:07:43
select next_day(to_date('2022/2/19 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期六') from dual;        --返回:2022/2/26 16:07:43
select next_day(to_date('2022/2/19 16:07:43','yyyy-mm-dd hh24:mi:ss'),'星期日') from dual;        --返回:2022/2/20 16:07:43

7.round:对指定时间四舍五入

【函数格式】:round(dateTime[,dateFormat])

【函数说明】:该函数返回时间参数dateTime按格式参数dateFormat四舍五入后的结果,返回值为时间类型。

【参数说明】:参数dateTime为时间类型,参数dateFormat为字符型,该参数可选。

参数dateFormat取值范围如下:

  • 省略该参数或该参数值为j时,表示取最近0点的日期;
  • 该参数值为day/dy/d时,表示取最近的星期日;
  • 该参数值为month/mon/mm/rm时,表示取最近的月初日期;
  • 该参数值为q时,表示取最近的季初日期;
  • 该参数值为syear/year/yyyy/yyy/yy/y(y的数量表示精度)时,表示取最近的年初日期;
  • 该参数值为cc/scc时,表示取最近的世纪初日期。

【样例展示一】:取最近0点的日期。

select round(to_date('2022/2/19 11:24:50','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:2022/2/19
select round(to_date('2022/2/19 12:24:50','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:2022/2/20
select round(to_date('2022/2/19 11:24:50','yyyy-mm-dd hh24:mi:ss'),'j') from dual;        --返回:2022/2/19
select round(to_date('2022/2/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'j') from dual;        --返回:2022/2/20

【样例展示二】:取最近的星期日。

select round(to_date('2022/2/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'day') from dual;           --返回:2022/2/20
select round(to_date('2022/2/21 12:24:50','yyyy-mm-dd hh24:mi:ss'),'dy') from dual;             --返回:2022/2/20
select round(to_date('2022/2/25 12:24:50','yyyy-mm-dd hh24:mi:ss'),'d') from dual;               --返回:2022/2/27

【样例展示三】:取最近的月初日期。

select round(to_date('2022/2/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'month') from dual;        --返回:2022/3/1
select round(to_date('2022/2/12 12:24:50','yyyy-mm-dd hh24:mi:ss'),'mon') from dual;           --返回:2022/2/1
select round(to_date('2022/2/16 12:24:50','yyyy-mm-dd hh24:mi:ss'),'mm') from dual;           --返回:2022/3/1
select round(to_date('2022/2/15 12:24:50','yyyy-mm-dd hh24:mi:ss'),'rm') from dual;             --返回:2022/2/1

【样例展示四】:取最近的季初日期。

select round(to_date('2022/2/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'q') from dual;                 --返回:2022/4/1
select round(to_date('2022/1/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'q') from dual;               --返回:2022/1/1

【样例展示五】:取最近的年初日期。

select round(to_date('2022/2/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'syear') from dual;        --返回:2022/1/1
select round(to_date('2022/6/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'year') from dual;                --返回:2022/1/1
select round(to_date('2022/7/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'yyyy') from dual;                --返回:2023/1/1
select round(to_date('2022/7/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'yyy') from dual;                --返回:2023/1/1
select round(to_date('2022/6/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'yy') from dual;                --返回:2022/1/1
select round(to_date('2022/7/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'y') from dual;                --返回:2023/1/1

【样例展示六】:取最近的世纪初日期。

select round(to_date('2022/1/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'cc') from dual;                --返回:2001/1/1
select round(to_date('1922/1/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'scc') from dual;                --返回:1901/1/1

8.trunc:对指定时间进行截取

【函数格式】:trunc(dateTime[,dateFormat])

【函数说明】:该函数返回时间参数dateTime对应时间格式dateFormat指定范围的第一天日期。

【参数说明】:参数dateTime为时间类型,参数dateFormat为字符型,该参数可选。

参数dateFormat取值范围如下:

  • 省略该参数或改参数值为j: 表示取最近的0点日期;
  • 值为day/dy/d (周日为每周第一天):表示取最近的星期日;
  • 值为month/mon/mm/rm:表示取最近的月初日期;
  • 值为q:表示取最近的季初日期;
  • 值为syear/year/yyyy/yyy/yy/y(多个y表示精度):表示取最近的年初日期;
  • 值为cc/scc:表示取最近的世纪初日期。

【样例展示一】:取最近的0点日期。

select trunc(to_date('2022/2/19 11:24:50','yyyy-mm-dd hh24:mi:ss')) from dual;                        --返回:2022/2/19
select trunc(to_date('2022/2/10 12:24:50','yyyy-mm-dd hh24:mi:ss')) from dual;                        --返回:2022/2/10
select trunc(to_date('2022/2/19 11:24:50','yyyy-mm-dd hh24:mi:ss'),'j') from dual;                        --返回:2022/2/19
select trunc(to_date('2022/2/10 12:24:50','yyyy-mm-dd hh24:mi:ss'),'j') from dual;                        --返回:2022/2/10

【样例展示二】:取最近的星期日。

select trunc(to_date('2022/2/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'day') from dual;                --返回:2022/2/13
select trunc(to_date('2022/2/21 12:24:50','yyyy-mm-dd hh24:mi:ss'),'dy') from dual;                --返回:2022/2/20
select trunc(to_date('2022/2/25 12:24:50','yyyy-mm-dd hh24:mi:ss'),'d') from dual;                --返回:2022/2/20

【样例展示三】:取最近的月初日期。

select trunc(to_date('2022/2/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'month') from dual;        --返回:2022/2/1
select trunc(to_date('2022/2/12 12:24:50','yyyy-mm-dd hh24:mi:ss'),'mon') from dual;                --返回:2022/2/1
select trunc(to_date('2022/2/16 12:24:50','yyyy-mm-dd hh24:mi:ss'),'mm') from dual;                --返回:2022/2/1
select trunc(to_date('2022/2/15 12:24:50','yyyy-mm-dd hh24:mi:ss'),'rm') from dual;                --返回:2022/2/1

【样例展示四】:取最近的季初日期。

select trunc(to_date('2022/2/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'q') from dual;                --返回:2022/1/1
select trunc(to_date('2022/8/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'q') from dual;                --返回:2022/7/1

【样例展示五】:取最近的年初日期。

select trunc(to_date('2022/2/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'syear') from dual;                --返回:2022/1/1
select trunc(to_date('2022/6/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'year') from dual;                --返回:2022/1/1
select trunc(to_date('2022/7/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'yyyy') from dual;                --返回:2022/1/1
select trunc(to_date('2022/7/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'yyy') from dual;                --返回:2022/1/1
select trunc(to_date('2022/6/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'yy') from dual;                --返回:2022/1/1
select trunc(to_date('2022/7/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'y') from dual;                --返回:2022/1/1

【样例展示六】:取最近的世纪初日期。

select trunc(to_date('2022/1/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'cc') from dual;                --返回:2001/1/1
select trunc(to_date('1922/1/19 12:24:50','yyyy-mm-dd hh24:mi:ss'),'scc') from dual;                --返回:1901/1/1

9.extract:截取日期时间中的特定部分

【函数格式】:extract ( { year | month | day | hour | minute | second } | { timezone_hour | timezone_minute } | { timezone_region | timezone_abbr } from { date_value | interval_value } )

【函数说明】:该函数从时间类型参数中截取指定部分。

【样例展示一】:从date类型数据中进行截取,注意,只能从一个date类型数据中截取year、month、day。

select sysdate from dual;        --返回当前时间:2022/2/19 16:52:05
select extract (year from sysdate) from dual;        --返回:2022
select extract (month from sysdate) from dual;        --返回:2
select extract (day from sysdate) from dual;        --返回:19

【样例展示二】:从timestamp类型数据中进行截取。

select extract (year from to_timestamp('2022-02-19 17:03:35','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:2022
select extract (month from to_timestamp('2022-02-19 17:03:35','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:2
select extract (day from to_timestamp('2022-02-19 17:03:35','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:19
select extract (hour from to_timestamp('2022-02-19 17:03:35','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:17
select extract (minute from to_timestamp('2022-02-19 17:03:35','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:3
select extract (second from to_timestamp('2022-02-19 17:03:35','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:35
select systimestamp from dual;        --当前时间:19-2月 -22 05.08.34.810000 下午 +08:00
select extract (timezone_hour from systimestamp) from dual;        --返回:8
select extract (timezone_minute from systimestamp) from dual;        --返回:0
select extract (timezone_region from systimestamp) from dual;        --返回:UNKNOWN
select extract (timezone_abbr from systimestamp) from dual;        --返回:UNK

【样例展示三】:获取两个时间之间的时间间隔。

select extract (day from to_timestamp('2023-06-23 20:10:55','yyyy-mm-dd hh24:mi:ss') - to_timestamp('2021-08-20 11:15:30','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:672
select extract (hour from to_timestamp('2023-06-23 20:10:55','yyyy-mm-dd hh24:mi:ss') - to_timestamp('2021-08-20 11:15:30','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:8
select extract (minute from to_timestamp('2023-06-23 20:10:55','yyyy-mm-dd hh24:mi:ss') - to_timestamp('2021-08-20 11:15:30','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:55
select extract (second from to_timestamp('2023-06-23 20:10:55','yyyy-mm-dd hh24:mi:ss') - to_timestamp('2021-08-20 11:15:30','yyyy-mm-dd hh24:mi:ss')) from dual;        --返回:25

【样例展示四】:获取interval类型数据的指定部分。

select extract(year from interval '50' year) year from dual;        --返回:50
select extract(month from interval '8' month) year from dual;        --返回:8
select extract(year from interval '50' month) year from dual;        --返回:4
select extract(month from interval '8' year) year from dual;        --返回:0

10.new_time:返回指定时区对应的时间

【函数格式】:new_time(dateTime, timeZone1, timeZone2)

【函数说明】:该函数返回时间dateTime在timeZone1时区对应timeZone2时区的日期和时间。

【参数说明】:timeZone1、timeZone2对应的时区简写如下:

  • 大西洋标准时间:AST或ADT
  • 阿拉斯加_夏威夷时间:HST或HDT
  • 英国夏令时:BST或BDT
  • 美国山区时间:MST或MDT
  • 美国中央时区:CST或CDT
  • 新大陆标准时间:NST
  • 美国东部时间:EST或EDT
  • 太平洋标准时间:PST或PDT
  • 格林威治标准时间:GMT
  • Yukou标准时间:YST或YDT

【样例展示】

select new_time(sysdate,'PDT','GMT') los_angles from dual;                                                   --返回:2022/2/19 22:16:24
select new_time(sysdate,'CST','YDT') los_angles from dual;                                                   --返回:2022/2/19 13:16:19
select new_time(sysdate,'NST','EDT') los_angles from dual;                                                   --返回:2022/2/19 14:46:48
select new_time(sysdate,'HST','ADT') los_angles from dual;                                                   --返回:2022/2/19 22:17:15

11.localtimestamp:返回会话中的日期和时间

【函数说明】:返回会话中的日期和时间,没有参数,不带括号,返回值为时间类型。

【样例展示】

select localtimestamp from dual;        --返回:19-2月 -22 05.29.31.442000 下午

12.current_timestamp:返回当前会话时区中的当前日期和时间

【函数说明】:以timestamp with time zone数据类型返回当前会话时区中的当前日期和时间,没有参数,不带括号,返回值为时间类型。

【样例展示】

select current_timestamp from dual;        --返回:19-2月 -22 05.32.56.402000 下午 +08:00

13.current_date:返回当前会话时区中的当前日期和时间

【函数说明】:返回当前会话时区中的当前日期和时间,没有参数,不带括号,返回值为时间类型。

【样例展示】

select current_date from dual;        --返回:2022/2/19 17:35:28

14.dbtimezone:返回时区

【函数说明】:返回时区,没有参数,不带括号,返回值为字符型。

【样例展示】

select dbtimezone from dual;        --返回:+00:00

15.sessiontimezone:返回会话时区

【函数说明】:返回会话时区,没有参数,不带括号,返回值为字符型。

【样例展示】

select sessiontimezone from dual;        --返回:+08:00

Oracle日期型函数详解相关推荐

  1. Oracle建立全文索引详解

    Oracle建立全文索引详解 1.全文检索和普通检索的区别 不使用Oracle text功能,当然也有很多方法可以在Oracle数据库中搜索文本,比如INSTR函数和LIKE操作: SELECT *F ...

  2. oracle语句中dual什么意思,oracle中dual详解

    oracle中dual详解 基本上oracle引入dual为的就是符合语法 1. 我们先从名称来说,dual不是缩写词,本身就是完整的单词.dual名词意思是对数,做形容词时是指二重的,二元的. 2. ...

  3. oracle中to_date详解

    oracle中to_date详解 TO_DATE格式(以时间:2007-11-02 13:45:25为例) 1. 日期和字符转换函数用法(to_date,to_char) 代码如下: select t ...

  4. oracle -- Oracle初始化参数详解

    oracle -- Oracle初始化参数详解 Oracle数据库系统根据初始化参数文件init.ora中设置的参数来配置自身的启动,每个实例在启动之前,首先读取这些参数文件中设置的不同参数. Ora ...

  5. oracle控制文件都一样么,Oracle控制文件详解

    一.Oracle控制文件 为二进制文件,初始化大小由CREATEDATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等等 ...

  6. Oracle cursor_sharing 参数 详解

    一. 官网的说明 http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams042.htm#REFRN10025 ...

  7. oracle参数文件initorcl位置,oracle 参数文件详解

    参数文件 两类参数文件: pfile:文本文件的参数文件,可以使用vi,vim等编辑器修改,文件名通常为init.ora spfile:二进制的参数文件,不能直接修改,只能存放在Oracle服务器端, ...

  8. oracle做子查询注意事项,Oracle子查询详解

    Oracle子查询详解,根据查询的结果(内部嵌套查询的结果)把子查询的类型分为单行子查询与多行子查询, 子查询概念 :当一个查询的结果是另一个查询的条件时,,称之为子查询. 使用子查询注意事项: 子查 ...

  9. Oracle中CONCAT详解

    Oracle中CONCAT详解 1.什么是CONCAT 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写 ...

最新文章

  1. yii2 modal弹窗之ActiveForm ajax表单异步验证
  2. 2.struts1.x中的异常处理
  3. 如何处理错误消息Please install the Linux kernel header files
  4. 【翻译】asp.net core中使用MediatR
  5. 未来是Apache Karaf上的微服务架构
  6. [Spark] Yarn local-dirs are bad 导致节点处于不健康状态
  7. 战神背光键盘如何关系_神舟战神K660E-i7D8红色背光键盘,深夜战火不熄!
  8. Domino(群组工作软件)
  9. Atitit. Java script 多重多重catch语句的实现and Javascript js 异常机制
  10. Charm Bracelet(题目地址链接:https://acs.jxnu.edu.cn/problem/NOIOPJCH02067113)
  11. vm虚拟机怎么连接wifi_win7下安装的vmware虚拟机怎么接入无线局域网实现网络互联互通-网络教程与技术 -亦是美网络...
  12. NB-IoT、LoRa逐渐商用 连接物联网长尾效应凸显
  13. VMware14下载安装ubuntu14.04.6(VMware系列二)
  14. 硬件设备使用网线连接PC并访问外网
  15. 【CS231n】斯坦福大学李飞飞视觉识别课程笔记(六):线性分类笔记(上)
  16. 什么是MISRA?如何满足该行业标准?
  17. fflush函数使用
  18. 第六章 selenium自动化测试工具:天下工具为我所用
  19. quill-editor 富文本插件(含全部全部工具栏)
  20. Python实现全自动购买火车票!抢票回家过年咯

热门文章

  1. 20154312 曾林 EXP9 Web安全基础
  2. 步进电机驱动器的作用
  3. 查表法求sin和cos
  4. Redis五大基本数据类型(String、LIst、Set、Hash、ZSet)及其底层结构
  5. Oracle 权限详解(grant,revoke)
  6. 如何绘制业务架构图 — 1. 概述
  7. 浅谈在软件开发中的开发与测试 - 下
  8. 如何看待 12 月 26 日发布的华为云 WeLink 企业智能工作平台?能对标得过企业微信和钉钉吗?
  9. 【微信小程序】上传头像
  10. 千锋教育+计算机四级网络-计算机网络学习-03