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

 

select to_char(sysdate, 'dy') from dual; --周几
Select to_char(sysdate, 'WW') weekly from dual; --第几周
select trunc(next_day(sysdate, '星期日') - 7) from dual; 
select to_char(trunc(next_day(sysdate, '星期六')),'yyyy-mm-dd') from dual;
select to_char(to_date('2009-12-31','yyyy-MM-dd'),'iw') week  from dual;

 

 

        日期運算函數  

2 
3ADD_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   
13LAST_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 
23NEXT_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   
35MONTHS_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   
47NEW_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   
59ROUND(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    
77TRUNC(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 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值