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

来源:互联网 发布:js整型 编辑:程序博客网 时间:2024/05/18 06:21

 

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 

 

原创粉丝点击