oracle时间类型的使用

2025-09-24 06:17:07

1、在计算时,最常用的便是获取当前的时间。例如:

select extract(year from sysdate) from dual; --当前年select extract(month from sysdate) from dual; --本年到当月的月数select extract(day from sysdate) from dual; --本月到当日

oracle时间类型的使用

2、也可以这么获取,例如:

select extract(year from date'2018-10-15') year from dual;   --获取时间类型的年

select extract(month from date'2018-10-15') month from dual;  --获取时间类型的月

select extract(day from date'2018-10-15') day from dual;      --获取时间类型的日

oracle时间类型的使用

3、也可以获取字符类型的日期,ORACLE里获取一个时间的年、季、月、周、日的函数。例如:select to_char(sysdate, 'MM' ) from dual; --月

select to_char(sysdate, 'dd' ) from dual; --日

select to_char(sysdate,'Q') from dual;   --获取当年日历上的季

select to_char(sysdate,'iw') from dual; --周--获取当年日历上的周数

oracle时间类型的使用

4、也可以进行时间的类型转换,例如:select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;   --获取当前时间的字符型

select SYSDATE from dual;  --获取当前时间的日期类型

select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual   --获取当前时间的格式

select to_date('2018-1-25 14:23:31','yyyy-mm-dd,hh24:mi:ss') from dual   --获取时间类型

oracle时间类型的使用

5、也可以进行复杂的时间格式的获取,例如:以这样的时间格式显示:年 -月 -日 -24制小时 -分 -秒 -上/下午 -星期中文;select to_char(sysdate,'yyyy-mm-dd:hh24:mi:ss:pm:dy') from dual;

--获取6月天数--select to_char(last_day(to_date('2018-06-1','YYYY-MM-DD')),'DD') from dual;

--获取1月天数--select to_char(last_day(to_date('2018-1-1','YYYY-MM-DD')),'DD') from dual;

--显示上个礼拜一到礼拜日SELECT to_char(SYSDATE, 'yyyymmdd') - to_number(to_char(SYSDATE, 'd') - 1) - 6,       to_char(SYSDATE, 'yyyymmdd') - to_number(to_char(SYSDATE, 'd') - 1)  from dual

oracle时间类型的使用

6、也能获取上个月的最后一天、上个月的第一天,例如:

select sysdate from dual   --结果:2018/4/21 15:34:05-- 取上个月最后一天    SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -1)),'YYYYMMDD') FROM DUAL;      --结果:20180331--取上个月第一天  SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -2)) + 1,'YYYYMMDD')  FROM DUAL;  --结果:20180301

oracle时间类型的使用

7、运用到时间类型一般和trunc函数配合使用,TRUNC函数为指定元素而截去的日期值。接下来演示几个trunc的简单使用。例如:

select trunc(sysdate) from dual  --2018/4/21  今天的日期为2018/4/21select trunc(sysdate, 'mm')   from   dual  --2018/4/1    返回当月第一天.select trunc(sysdate,'yy') from dual  --2018/1/1       返回当年第一天select trunc(sysdate,'dd') from dual  --2018/4/21   返回当前年月日select trunc(sysdate,'yyyy') from dual  --2018/1/11   返回当年第一天select trunc(sysdate,'d') from dual  --2018/4/15 (今天是2018/4/2)返回当前星期的第一天select trunc(sysdate, 'hh') from dual   --2018/4/21 15:00:00   当前时间select trunc(sysdate, 'mi') from dual  --2018/4/21 15:38:00   TRUNC()函数没有秒的精确

oracle时间类型的使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢