上周日到下周六的 DB2 Between 语句

DB2 Between Statement for Last Sunday to This Coming Saturday

我很好奇为什么这不起作用:

SELECT *
FROM TABLE
WHERE DATE_TIME_COLUMN BETWEEN
    current date - int((dayofweek(current date))-1)
    AND
    current date + int(7-(dayofweek(current date)))

当这正是我想要的时候:

select current date - int((dayofweek(current date))-1) days from sysibm.sysdummy1)
select current date + int(7-(dayofweek(current date))) days from sysibm.sysdummy1)

以上两个将产生我希望我的特定日期时间列介于两者之间的正确日期。我在这里错过了什么?

"Does not work"有点含糊:)。您的第一个查询缺少 DAY 部分来告诉 DB2 您在哪个部分进行日期数学运算。

但是,听起来您可能想要使用 WEEK 标量函数:

SELECT *
FROM TABLE
WHERE WEEK(DATE_TIME_COLUMN) = WEEK(CURRENT_DATE)
  AND YEAR(DATE_TIME_COLUMN) = YEAR(CURRENT_DATE)
SELECT *
FROM TABLE
WHERE DATE_TIME_COLUMN BETWEEN
current date - ((dayofweek(current date))-1) DAYS
AND
current date + (7-(dayofweek(current date))) DAYS

如上所示,您必须表示从当前日期开始减少 DAYS。