oracle 日期常用函数 (ADD_MONTHS,LAST_DAY,NEXT_DAY,MONTHS_BETWEEN,NEW_TIME,ROUND,TRUNC)

日期运算函數  
 
ADD_MONTHS(d,n)  
 --时间点d再加上n个月 
 
 
 ex.  
  select sysdate, add_months(sysdate,2) aa from dual;  
 
  SYSDATE    AA  
   ---------- ----------  
   21-SEP-07  21-NOV-07  
    
 LAST_DAY(d)  
  --时间点d当月份最后一天  

  
  ex.  
   select sysdate, LAST_DAY(sysdate) LAST_DAY from dual;  
  
   SYSDATE    LAST_DAY  
   ---------- ---------  
   21-SEP-07  30-SEP-07  
  
 NEXT_DAY(d,number)  
  --◎ 时间点d开始,下一个星期几的日期  
  --◎ 星期日 = 1  星期一 = 2  星期二 = 3  
  --   星期三 = 4  星期四 = 5  星期五 = 6  星期六 = 7
  
  
  ex.  
   select sysdate, NEXT_DAY(sysdate,2) aa from dual;  
  
   SYSDATE    AA  
   ---------- ----------  
   21-SEP-07  24-SEP-07  
    
 MONTHS_BETWEEN(d1,d2)  
  --计算d1与d2相隔的月数 
  
   
  ex.  
   select trunc(MONTHS_BETWEEN(to_date('20071101','yyyymmdd'),  
          to_date('20070820','yyyymmdd'))) aa   
   from dual;  
  
         AA  
   ----------  
          2  
    
 NEW_TIME(d,c1,c2)  
  --转换新时区 
  
   
  ex.  
   select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') 台北,   
          to_char(NEW_TIME(sysdate,'EST','GMT'),'YYYY/MM/DD HH24:MI:SS') 格林威治   
   from dual;  
  
   台北                 格林威治  
   -------------------- -------------------  
   2007/09/21 14:36:53  2007/09/21 19:36:53  
    
 ROUND(d[,fmt])  
  --◎ 对日期作四捨五入运算   
  --◎ 月的四舍五入以每月的15号为基准
  --◎ 年的四舍五入以每年6月为基准

   
  ex.  
   select sysdate, ROUND(sysdate,'year') aa from dual;  
  
   SYSDATE    AA  
   ---------- ----------  
   21-SEP-07  01-JAN-08  
     
   select sysdate, ROUND(sysdate,'month') aa from dual;  
  
   SYSDATE    AA  
   ---------- ----------  
   21-SEP-07  01-OCT-07  
     
 TRUNC(d[,fmt])  
   --对日期作截取运算  
 
   
  ex.  
   select sysdate, TRUNC(sysdate,'year') aa from dual;  
  
   SYSDATE    AA  
   ---------- ----------  
   21-SEP-07  01-JAN-07  
     
   select sysdate, TRUNC(sysdate,'month') aa from dual;  
  
   SYSDATE    AA  
   ---------- ----------  
   21-SEP-07  01-SEP-07

你可能感兴趣的:(oracle,c,Date)