减去Oracle DB中的时间戳

时间:2013-07-25 18:09:43

标签: sql database oracle

好的我有两列: last_time_used prev_time_used 。我正在尝试编写一个查询,它将获得时间差为2小时的所有记录。 E.g。

SELECT * FROM table WHERE last_time_used - prev_time_used >= 2

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

我在这里看到过类似的问题,但似乎没有一个符合我的目的。

2 个答案:

答案 0 :(得分:3)

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

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

注意:代码未经过测试。

答案 1 :(得分:1)

看看这个矩阵:http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements001.htm#g196492

一些例子:

TIMESTAMP - TIMESTAMP返回INTERVAL
日期 - 日期返回NUMBER(天数)
日期 - TIMESTAMP返回INTERVAL