Oracle之第一天和最后一天

--取当前日期前一个月的第一天的日期
SELECT last_day(add_months(SYSDATE, -2)) + 1  FROM dual;
--取当前日期前一个月的最后一天的日期
SELECT last_day(add_months(SYSDATE, -1)) FROM dual;
--本月的第一天和最后一天
select to_char(trunc(sysdate,'MONTH'),'yyyy-mm-dd') First_DayOfMonth
       ,to_char(last_day(trunc(sysdate,'MONTH')),'yyyy-mm-dd') Last_DayOfMonth 
from dual;
 
---周,oracle默认周日为本周第一天
select trunc(sysdate,'iw') from dual; --本周一
select trunc(sysdate,'iw')+6 from dual; ---本周日
select trunc(sysdate,'iw') - 7 from dual;---上周一 
select trunc(sysdate,'iw') - 1 from dual;--上周日
 
---今天为本年本月第几天
select 
      to_char(sysdate, 'yyyy') as year, --oracle求当前年  
       to_char(sysdate, 'q') as quarter, -- oracle求当年的第几季度   
      to_char(sysdate, 'mm') as month, --oracle求当年第几月
      to_char(sysdate, 'iw') as week, --oracle求当年的第几周(IOS周)
      to_char(sysdate, 'ww') as week2, --oracle求当年的第几周(1月1号为第一周的周一)
      to_char(sysdate, 'ddd') as dayofyear, --oracle求当年的第几天
      to_char(sysdate, 'dd') as dayofmonth, --oracle求当月的第几天
      to_char(sysdate, 'yyyymmdd') as day --oracle求当月的第几天
 from dual;
 
---oracle时间计算
select sysdate - 1 from dual; ---前一天
select add_months(sysdate,-1) from dual;  ----前一个月今天
select add_months(sysdate,1) from dual;  ----后一个月今天
select last_day(sysdate) from dual;  --本月最后一天
select to_char(sysdate,'D') from dual; ---本周第几日(周日为第一天)
 
 
 
posted @ 2015-12-03 13:02  xcxp小胖  阅读(582)  评论(0编辑  收藏  举报