在oracle中用WEEK计算

时间:2015-01-05 09:20:43

标签: sql date plsql week-number

我正在比较oracle中的两个日期,在那里,我必须将我的周和本周进行比较。

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

ld_week BETWEEN FOCUS_WEEK-4 AND FOCUS_WEEK-1 

其中:

  • ld_week是输入日期(当年的最后一周)的一周
  • focus_week是当前日期(明年第一周)的一周
因此(52 BETWEEN(1-4)和(1-1))总是失败。

我使用以下函数来计算一周。

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

请告诉我如何处理它。

1 个答案:

答案 0 :(得分:2)

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

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

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