Oracle中上周一和上周日的两种方法

trunc(sysdate,'iw') : iw,不受月份与年份的影响,直接返回当周一
to_char(sysdate,'d'): 返回制定日期是当周的第几天, 周日至周六用1-7表示

--查询上周一和上周日的两种方法
--1.采用to_char(sysdate,'d')
select to_char(sysdate+(2-to_char(sysdate,'d'))-7,'yyyymmdd') from dual;--上周一 
select to_char(sysdate+(2-to_char(sysdate,'d'))-1,'yyyymmdd') from dual;--上周日

--2.采用trunc(sysdate,'iw')
--返回to_char类型
select to_char(trunc(sysdate,'iw') - 7,'yyyymmdd') from dual; --上周一
select to_char(trunc(sysdate,'iw') - 1,'yyyymmdd') from dual; --上周日

--返回date类型
select trunc(sysdate,'iw') - 7 from dual; --上周一 
select trunc(sysdate,'iw') - 1 from dual; --上周日
 

你可能感兴趣的:(Oracle基础)