oracle中时间推算

来源:互联网 发布:淘宝外包 编辑:程序博客网 时间:2024/04/28 22:58

oracle中时间的处理

 

1.格式化输出

   <1>select   to_char(sysdate,'yyyy/mm/dd')  from dual;

  显示结果:

  2011/05/11

 

   <2>select  to_char(sysdate,'yyyy"年"mm"月"dd"月"')  from dual;

   显示结果:

   2011年05月11月

 

2.日期推算处理

  <1>指定日期该年的第一天

   select   trunc(sysdate,'YEAR')  from dual

    显示结果:

    2011-1-1

 

   该年的最后一天

   select  add_months(last_day(sysdate),12-to_char(sysdate,'mm')) from dual;

   显示结果:

   2011-12-31 10:35:21

 

  <2>指定日期该月的第一天

         select add_months(last_day(sysdate)+1,-1) from dual;

          显示结果:

          2011-5-1 10:44:14

 

         select trunc(sysdate,'MONTH') from dual;

         显示结果:

         2011-5-1

 

         指定日期该月的最后一天

         select last_day(sysdate) from dual;

         显示结果:

         2011-5-31 10:40:52

 

 <3>指定日期该季度的第一天

       select TRUNC(add_months(sysdate,mod(to_number(to_char(sysdate,'mm')),3)-3),'MONTH')

        from dual;

        显示结果:

       2011-4-1

 

       指定日期该季度的最后一天

        select  to_char(last_day(add_months(sysdate,3-mod(to_number(to_char(sysdate,'mm')),3))),'yyyy-mm-dd')

        from dual;

        显示结果:

        2011-06-30

 

   <4>指定日期所在周的任意一天

    next_day();

   <5>指定日期的任意一天的改时刻

        select next_day(sysdate,2)  from  dual;