任意日期得到该周周一的日期(适合一周从周一到周日的情形):

----------任意日期得到该周周一的日期(适合一周从周一到周日的情形)-----------
select TO_CHAR(to_date(substr('20110613',1,8), 'yyyymmdd') -
decode(
TO_NUMBER(TO_CHAR(to_date(substr('20110613',1,8),'yyyymmdd'),'D')),
1,
-6,
TO_NUMBER(TO_CHAR(to_date(substr('20110613',1,8),'yyyymmdd'),'D'))-2)
,'YYYYMMDD') 
from dual;

任意日期得到该周周日的日期(适合一周从周日到周六的情形):

----------任意日期得到该周周日的日期(适合一周从周日到周六的情形)-----------
select TO_CHAR(to_date(substr('20110612',1,8), 'yyyymmdd') -
TO_NUMBER(TO_CHAR(to_date(substr('20110612',1,8),'yyyymmdd'),'D')) + 1,'YYYYMMDD') 
from dual;

其中的'20110612'和'20110613'可以是任意日期

 posted on 2011-07-22 15:49  Lucien.Bao  阅读(520)  评论(0编辑  收藏  举报