搜索最近 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);
我有下面的代码,我想 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);