在Oracle中,有一个直接的方法来获得一周的第一天给出一周的数字吗?
例如,今天的日期是12/4/2012.如果我运行:从双重选择to_char(sysdate,'WW'); 它返回49作为周数.
我想做的是第一天以某种方式返回2012年12月2日...给出第49周(假设星期日是一周的第一天).
有任何想法吗?在此先感谢您的帮助!
试试这个:
select next_day(max(d), 'sun') requested_sun
from (select to_date('01-01-2012', 'dd-mm-yyyy') + (rownum-1) d from dual connect by level <= 366)
where to_char(d, 'ww') = 49-1;
Run Code Online (Sandbox Code Playgroud)
只需设置您的年份to_date('01-01-2012'和周数-1即可49-1.
2008年第49周的周日?
SQL> select next_day(max(d), 'sun') requested_sun
2 from (select to_date('01-01-2008', 'dd-mm-yyyy') + (rownum-1) d from dual connect by level <= 366)
3 where to_char(d, 'ww') = 49-1;
REQUESTED
---------
07-DEC-08
Run Code Online (Sandbox Code Playgroud)
和2012年
SQL> select next_day(max(d), 'sun') requested_sun
2 from (select to_date('01-01-2012', 'dd-mm-yyyy') + (rownum-1) d from dual connect by level <= 366)
3 where to_char(d, 'ww') = 49-1;
REQUESTED
---------
02-DEC-12
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16904 次 |
| 最近记录: |