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

来源:互联网 发布:mac ps cs6 破解码 编辑:程序博客网 时间:2024/05/18 06:22





(ADD_MONTHS,LAST_DAY,NEXT_DAY,MONTHS_BETWEEN,NEW_TIME,ROUND,TRUNC)




http://blog.blueshop.com.tw/pili9141/articles/52505.aspx




 








1 日期运算函数 

3 ADD_MONTHS(d,n) 
4 --时间点d再加上n个月 

6 ex. 
7  select sysdate, add_months(sysdate,2) aa from dual; 

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 

原创粉丝点击