Oracle时间函数浅析


一、sysdate函数

1、sysdate的运算

加法

  1. select sysdate,add_months(sysdate,12) from dual;        --加1年   
  2. select sysdate,add_months(sysdate,1) from dual;        --加1月   
  3. select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual;   --加1星期   
  4. select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual;   --加1天   
  5. select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual;  --加1小时   
  6. select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual;  --加1分钟   
  7. select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual;  --加1秒  

减法

  1. select sysdate,add_months(sysdate,-12) from dual;        --减1年   
  2. select sysdate,add_months(sysdate,-1) from dual;        --减1月   
  3. select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual;   --减1星期   
  4. select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual;   --减1天   
  5. select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from dual;  --减1小时   
  6. select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual;  --减1分钟   
  7. select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual;  --减1秒  

2、常用的日期格式

  1. 日期格式                 說明    
  2. --------------------    ------------------------------------------------    
  3. YYYY/MM/DD              -- 年/月/日     
  4. YYYY                    -- 年(4位)    
  5. YYY                     -- 年(3位)    
  6. YY                      -- 年(2位)    
  7. MM                      -- 月份    
  8. DD                      -- 日期    
  9. D                       -- 星期    
  10.                            -- 星期日 = 1  星期一 = 2 星期二 = 3    
  11.                            -- 星期三 = 4  星期四 = 5 星期五 = 6 星期六 = 7    
  12.                        
  13. DDD                     -- 一年之第几天    
  14. WW                      -- 一年之第几周    
  15. W                       -- 一月之第几周    
  16. YYYY/MM/DD HH24:MI:SS   -- 年/月/日 時(24小時制):分:秒    
  17. YYYY/MM/DD HH:MI:SS     -- 年/月/日 時(12小時制):分:秒    
  18. J                       -- Julian day,Bc 4712/01/01 为1    
  19. RR/MM/DD                -- 公元2000問題     
  20.                -- 00-49 = 下世紀;50-99 = 本世紀   

示例

  1.     select to_char(sysdate,'YYYY/MM/DD') FROM DUAL;             -- 2007/09/20    
  2. select to_char(sysdate,'YYYY') FROM DUAL;                   -- 2007    
  3. select to_char(sysdate,'YYY') FROM DUAL;                    -- 007    
  4.     select to_char(sysdate,'YY') FROM DUAL;                     -- 07    
  5.     select to_char(sysdate,'MM') FROM DUAL;                     -- 09    
  6.     select to_char(sysdate,'DD') FROM DUAL;                     -- 20    
  7.     select to_char(sysdate,'D') FROM DUAL;                      -- 5    
  8.     select to_char(sysdate,'DDD') FROM DUAL;                    -- 263    
  9.     select to_char(sysdate,'WW') FROM DUAL;                     -- 38    
  10.     select to_char(sysdate,'W') FROM DUAL;                      -- 3    
  11.     select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') FROM DUAL;  -- 2007/09/20 15:24:13    
  12.     select to_char(sysdate,'YYYY/MM/DD HH:MI:SS') FROM DUAL;    -- 2007/09/20 03:25:23    
  13.     select to_char(sysdate,'J') FROM DUAL;                      -- 2454364    
  14.     select to_char(sysdate,'RR/MM/DD') FROM DUAL;               -- 07/09/20   

相关内容