在 Oracle 中,是否有一种简单的方法可以根据周数获取一周的第一天?
例如,今天的日期是 12/4/2012。如果我运行: 从 Dual 选择 to_char(sysdate,'WW'); 它返回 49 作为周数。
我想做的是以某种方式返回 12/2/2012 作为第一天...给定第 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;
只需设置您的年份 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
和 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
关于oracle - 从周数获取一周的第一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13706558/