2015-01-05 132 views
0

我正在比较oracle中的两个日期,在这两个日期中,我坚持在一个点上,在这个点上我必须将本周与当前周进行比较。在oracle中使用WEEK进行计算

今天假设为05-Jan-2015,它的第一周,输入日期为29_Dec-2014,我执行下面的语句来比较:

ld_week BETWEEN FOCUS_WEEK-4 AND FOCUS_WEEK-1 

其中:

  • ld_week是一周输入日期(本年度最后一周)
  • focus_week是从当前日期开始的一周(明年的第一周)

因此(52间(1-4)和(1-1))总是失败。

我正在使用下面的函数来计算星期。

FOCUS_WEEK := to_number(to_char(to_date(focus_day),'WW')); 

请让我知道如何处理它。

回答

2

你的问题有点含糊。我相信你想尝试

 trunk(date '2014-12-29', 'd') 
between 
     trunk(sysdate - 4*7 , 'd') and 
     trunk(sysdate - 1*7 , 'd') 

随着trunc(date, 'd')你获得一个星期的开始日期。