Oracle 各种时间获取方法

来源:互联网 发布:用友网络2017最新消息 编辑:程序博客网 时间:2024/04/30 14:24

1、获取系统日期:  SYSDATE()
2、    格式化日期:  TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS)
                       或      TO_DATE(SYSDATE(),'YY/MM/DD HH24:MI:SS)

3、   格式化数字:   TO_NUMBER

①、当前时间减去7分钟的时间

select sysdate,sysdate - interval '7' MINUTE from dual;

②、当前时间减去7小时的时间

select sysdate - interval '7' hour from dual;

③、当前时间减去7天的时间  

select sysdate - interval '7' day  from dual;

④、时间间隔乘以一个数字
select sysdate,sysdate - 8*interval '7' hour from dual;

⑤、取两个时间之间的时间差:

                   select sysdate-1 from dual 

                   select sysdate+/-n from dual  (n代表你想差的天数)

4、格式化时间格式

①、TO_CHAR(Sysdate, 'YYYY-MM-DD HH24:MI')中的'YYYY-MM-DD HH24:MI'格式分为两部分,'YYYY-MM-DD'为日期部分,'HH24:MI'为时间部分。

Select TO_CHAR(Sysdate, 'YYYY-MM-DD HH24:MI')   From Dual;  显示的是日期和时间;

Select TO_CHAR(Sysdate, 'YYYY-MM-DD')   From Dual;   则仅显示日期;

Select TO_CHAR(Sysdate, 'YYYY')   From Dual;   则仅显示年份,依此类推

②、trunc()函数

oracle trunc(sysdate,'dd')  日期

select trunc(sysdate ,'dd') from dual ;   -- 2007-9-19

select trunc(sysdate ,'yyyy') from dual ;   --2007-1-1

select trunc(sysdate ,'mm') from dual ;   --2007-9-1

5、求出本星期的第一天日期(以星期一为第一天)

  select trunc(sysdate,'DD')-to_char(sysdate,'D')+2 from dual;

6、求出本星期的第七天日期(以星期日为第七天)

        select trunc(sysdate,'DD')-to_char(sysdate,'D')+8 from dual;

7、根据日期格试,取到值到星期几

  select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual; 

oracle 取某月的第一天,最后一天,前一个月的第一天,最后一天,类似方法

8、在Oracle 数据库中取某个月份的第一天和最后一天的方法:

①、Last_day 本月最后一天

select last_day(sysdate) from dual;

②、取当前日期前一个月的第一天的日期
select  last_day(add_months(SYSDATE, -2)) + 1  FROM dual;
③、取当前日期前一个月的最后一天的日期
select  last_day(add_months(SYSDATE, -1)) FROM dual;
④、本月的第一天和最后一天
select to_char(trunc(sysdate,'MONTH'),'yyyy-mm-dd') First_DayOfMonth ,to_char(last_day(trunc(sysdate,'MONTH')),'yyyy-mm-dd') Last_DayOfMonth  from dual;
⑤、Months_between(f,s) 日期f和s间相差月数
select months_between(sysdate,to_date('2005-11-12','yyyy- mm-dd'))from dual;
⑥上月末天: 
select to_char(add_months(last_day(sysdate),-1),'yyyy-MM- dd') LastDay from dual;
⑦、上月今天 
select to_char(add_months(sysdate,-1),'yyyy-MM-dd') PreToday from dual;
⑧、上月首天 
select to_char(add_months(last_day(sysdate)+1,-2),'yyyy-M M-dd') firstDay from dual;
⑨、按照每周进行统计 
select to_char(sysdate,'ww') from dual group by to_char(sysdate,'ww');
⑩、按照每月进行统计
select to_char(sysdate,'mm') from dual group by to_char(sysdate,'mm');
⑪、按照每季度进行统计 
select to_char(sysdate,'q') from dual group by to_char(sysdate,'q');
⑫、按照每年进行统计 
select to_char(sysdate,'yyyy') from dual group by to_char(sysdate,'yyyy');
9、要找到某月中所有周五的具体日期
select to_char(t.d,'YY-MM-DD') from ( select trunc(sysdate, 'MM')+rownum-1 as d from dba_objects where rownum < 32) t where to_char(t.d, 'MM') = to_char(sysdate, 'MM') (--找出当前月份的周五的日期 )and trim(to_char(t.d, 'Day')) = '星期五'




 
0 0
原创粉丝点击