1

我的问题是尝试使用 SELECT 语句并按特定列排序前 10 名。在搜索了很多论坛后,我设法编译了一些东西,但是我需要确认一个字段中的时间戳在上周内。我已经执行了这个,但是我不确定这是否正确,因为我无法打印 where 子句的值:

SELECT itemid, count(itemid) 
FROM Rateddate 
WHERE TO_CHAR(CURRENT_TIMESTAMP - DATE_RATED) < TO_CHAR(7)  
GROUP BY itemid;

TLDR:

TO_CHAR(CURRENT_TIMESTAMP - DATE_RATED) < TO_CHAR(7)

这是否确保 date_rated 时间戳小于一周?

4

2 回答 2

4

说起来更有意义

WHERE date_rated > sysdate - interval '7' day

如果您想要过去 168 小时的数据。你可能想要

WHERE date_rated > trunc(sysdate) - interval '7' day

如果您想要 7 天前一天中的任何时间点的数据,而不是关心当前时间。

于 2012-05-11T18:16:37.453 回答
0

这不适合你吗:

  trunc(CURRENT_TIMESTAMP - DATE_RATED) < 7

这是假设这DATE_RATED是一个日期字段。如果没有,您需要先将其转换为TO_DATE().

于 2012-05-11T18:17:09.207 回答