0

好的,我有 2 列:last_time_usedprev_time_used。我正在尝试编写一个查询,该查询将获取所有时差为 2 小时的记录。例如

SELECT * FROM table WHERE last_time_used - prev_time_used >= 2

上面的查询得到一个错误,说它期望 INTERVAL DAY TO SECOND 但得到一个数字。

我在这里看到了类似的问题,但没有一个似乎适合我正在尝试做的事情。

4

2 回答 2

3

使用时间戳算术,您需要使用 INTERVAL 数据类型:

SELECT * FROM table WHERE last_time_used - prev_time_used >= interval '2' hour

注意:代码未经测试。

于 2013-07-25T18:20:04.110 回答
1

看看这个矩阵:http

://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements001.htm#g196492 一些例子:

TIMESTAMP - TIMESTAMP 返回 INTERVAL
DATE - DATE 返回 NUMBER(天数)
DATE - TIMESTAMP 返回 INTERVAL
等。

于 2013-07-25T18:28:27.343 回答