Oracle日期運算函數

来源:互联网 发布:电脑软件培训学校 编辑:程序博客网 时间:2024/05/16 14:13

日期運算函數    
2     
3 ADD_MONTHS(d,n)    
4  --時間點d再加上n個月    
5     
6  ex.    
7   select sysdate, add_months(sysdate,2) aa from dual;    
8     
9   SYSDATE    AA    
10   ---------- ----------    
11   21-SEP-07  21-NOV-07    
12      
13 LAST_DAY(d)    
14  --時間點d當月份最後一天    
15     
16  ex.    
17   select sysdate, LAST_DAY(sysdate) LAST_DAY from dual;    
18     
19   SYSDATE    LAST_DAY    
20   ---------- ---------    
21   21-SEP-07  30-SEP-07    
22     
23 NEXT_DAY(d,number)    
24  --◎ 時間點d開始,下一個星期幾的日期    
25  --◎ 星期日 = 1  星期一 = 2  星期二 = 3    
26  --   星期三 = 4  星期四 = 5  星期五 = 6  星期六 = 7    
27     
28  ex.    
29   select sysdate, NEXT_DAY(sysdate,2) aa from dual;    
30     
31   SYSDATE    AA    
32   ---------- ----------    
33   21-SEP-07  24-SEP-07    
34      
35 MONTHS_BETWEEN(d1,d2)    
36  --計算d1與d2相隔的月數    
37     
38  ex.    
39   select trunc(MONTHS_BETWEEN(to_date('20071101','yyyymmdd'),    
40          to_date('20070820','yyyymmdd'))) aa     
41   from dual;    
42     
43         AA    
44   ----------    
45          2    
46      
47 NEW_TIME(d,c1,c2)    
48  --轉換新時區    
49     
50  ex.    
51   select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') 台北,     
52          to_char(NEW_TIME(sysdate,'EST','GMT'),'YYYY/MM/DD HH24:MI:SS') 格林威治     
53   from dual;    
54     
55   台北                 格林威治    
56   -------------------- -------------------    
57   2007/09/21 14:36:53  2007/09/21 19:36:53    
58      
59 ROUND(d[,fmt])    
60  --◎ 對日期作四捨五入運算    
61  --◎ 月的四捨五入以每月的15號為基準    
62  --◎ 年的四捨五入以每年6月為基準    
63     
64  ex.    
65   select sysdate, ROUND(sysdate,'year') aa from dual;    
66     
67   SYSDATE    AA    
68   ---------- ----------    
69   21-SEP-07  01-JAN-08    
70       
71   select sysdate, ROUND(sysdate,'month') aa from dual;    
72     
73   SYSDATE    AA    
74   ---------- ----------    
75   21-SEP-07  01-OCT-07    
76       
77 TRUNC(d[,fmt])    
78   --對日期作擷取運算    
79     
80  ex.    
81   select sysdate, TRUNC(sysdate,'year') aa from dual;    
82     
83   SYSDATE    AA    
84   ---------- ----------    
85   21-SEP-07  01-JAN-07    
86       
87   select sysdate, TRUNC(sysdate,'month') aa from dual;    
88     
89   SYSDATE    AA    
90   ---------- ----------    
91   21-SEP-07  01-SEP-07  

原创粉丝点击