oracle中用WEEK计算

Calculation with WEEK in oracle

我正在比较 oracle 中的两个日期,我卡在一个点上,我必须将我的一周与当前一周进行比较。

假设今天是 05-Jan-2015,这是第一周,输入日期是 29_Dec-2014,我正在执行以下语句进行比较:

ld_week BETWEEN FOCUS_WEEK-4 AND FOCUS_WEEK-1 

其中:

因此 (52 BETWEEN (1-4) AND (1-1)) 总是失败。

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

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

请告诉我如何处理。

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

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

使用 trunc(date, 'd') 可以获得一周的开始日期。