搜索最近 7 天,不包括今天 Oracle SQL

Search Last 7 days excluding today Oracle SQL

我有下面的代码,我想 return 最近 7 天不包括今天(例如从 5 月 5 日到 5 月 11 日,而不是 5 月 5 日到 5 月 12 日)

我还能包括什么来实现这个目标?

    SELECT * 
FROM TABLE_1
WHERE DATE_TIME >= SYSDATE -7

这应该有效:

    SELECT * 
FROM TABLE_1
WHERE DATE_TIME >= SYSDATE -7
  AND TRUNC(DATE_TIME) != TRUNC(SYSDATE)

需要 TRUNC 去除日期列和系统日期的时间部分。

请注意, DATE_TIME >= SYSDATE -7 将包括 SYSDATE 的时间部分并减去 7 天。如果您 运行 在上午 10 点进行查询,您是否也想在上午 9 点包含具有 date_time = sysdate - 7 的行?如果是这样,最好也添加一个 TRUNC DATE_TIME >= TRUNC(SYSDATE) -7.

您想要一个从今天午夜前 7 天开始到今天午夜前结束的范围:

SELECT *
FROM   table_name
WHERE  date_time >= TRUNC(sysdate) - 7
AND    date_time <  TRUNC(sysdate);