如果一年中最后一个月总天数除一周总天数后的余数小于三天刚把这周放到当前年的一周,如果大于三天刚放到下一年的第一周,周号在新一年又重新计算
周号 星期天 星期一 星期二 星期三 星期四 星期五 星期六
200853 2008-12-28 2008-12-29 2008-12-30 2008-12-31 2009-1-1 2009-1-2 2009-1-3 200901 2009-1-4 2009-1-5 2009-1-6 2009-1-7 2009-1-8 2009-1-9 2009-1-10 200902 2009-1-11 2009-1-12 2009-1-13 2009-1-14 2009-1-15 2009-1-16 2009-1-17 还有在问一个问题SQL里一年中的每一周怎样查出来,比如200901,200902,200903,····这种语句该怎样写
周号 星期天 星期一 星期二 星期三 星期四 星期五 星期六
200853 2008-12-28 2008-12-29 2008-12-30 2008-12-31 2009-1-1 2009-1-2 2009-1-3 200901 2009-1-4 2009-1-5 2009-1-6 2009-1-7 2009-1-8 2009-1-9 2009-1-10 200902 2009-1-11 2009-1-12 2009-1-13 2009-1-14 2009-1-15 2009-1-16 2009-1-17 还有在问一个问题SQL里一年中的每一周怎样查出来,比如200901,200902,200903,····这种语句该怎样写
最简单的使用select TO_CHAR(TO_DATE('2009-12-02','YYYY-MM-DD'), 'WW') from dual
不过to_char()函数在计算一年中第几周是从该年的1月1日开始的。 一下SQL 能得到正确的周数..
/* Formatted on 2009/12/02 15:31 (Formatter Plus v4.8.8) */
SELECT TO_CHAR
(DECODE
(SIGN
( ( TO_DATE ('2009-12-02', 'YYYY-MM-DD')
+ TO_NUMBER
(DECODE (TO_CHAR (TRUNC (TO_DATE ('2009-12-02',
'YYYY-MM-DD'
),
'YYYY'
),
'D'
),
'1', '8',
TO_CHAR (TRUNC (TO_DATE ('2009-12-02',
'YYYY-MM-DD'
),
'YYYY'
),
'D'
)
)
)
- 2
)
- LAST_DAY (TO_DATE ('2009-12-02', 'YYYY-MM-DD'))
),
1, LAST_DAY (TO_DATE ('2009-12-02', 'YYYY-MM-DD')),
( TO_DATE ('2009-12-02', 'YYYY-MM-DD')
+ TO_NUMBER (DECODE (TO_CHAR (TRUNC (TO_DATE ('2009-12-02',
'YYYY-MM-DD'
),
'YYYY'
),
'D'
),
'1', '8',
TO_CHAR (TRUNC (TO_DATE ('2009-12-02',
'YYYY-MM-DD'
),
'YYYY'
),
'D'
)
)
)
- 2
)
),
'WW'
)
FROM DUAL;------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716
to_char(trunc((date'2008-1-2'+(rownum-1)*7-trunc(date'2008-1-2'+(rownum-1)*7,'yyyy'))/7)+1,'fm00')周号,
date'2007-12-30'+(rownum-1)*7 星期天,
date'2007-12-31'+(rownum-1)*7 星期一,
date'2008-1-1'+(rownum-1)*7 星期二,
date'2008-1-2'+(rownum-1)*7 星期三,
date'2008-1-3'+(rownum-1)*7 星期四,
date'2008-1-4'+(rownum-1)*7 星期五,
date'2008-1-5'+(rownum-1)*7 星期六
from dual
connect by rownum<700