SQL中一整天的两个时间戳之间的差异
请帮我解决这个问题SQL中一整天的两个时间戳之间的差异,sql,oracle10g,Sql,Oracle10g,请帮我解决这个问题 我使用的是Oracle数据库,其中有一个表,其中每秒插入4-5条记录,因此我必须在至少15分钟内没有标记的情况下检查一整天。您可以使用lag来检查这一点 例如,假设您的字段被称为数据类型为时间戳的ts: select ts , prior_ts from (select ts, lag(ts) over (order by ts) prior_ts, case when ts
我使用的是Oracle数据库,其中有一个表,其中每秒插入4-5条记录,因此我必须在至少15分钟内没有标记的情况下检查一整天。您可以使用
lag
来检查这一点
例如,假设您的字段被称为数据类型为时间戳的ts
:
select ts , prior_ts
from (select ts,
lag(ts) over (order by ts) prior_ts,
case
when ts - lag(ts) over (order by ts) > numtodsinterval(15, 'minute')
then 'x'
end gap_flag
from your_table
where ts between A and B -- limit checks to a range.
)
where gap_flag = 'x';
因此,它将给出出现>15分钟的间隔。使用提取获得差异的一般示例。时间戳-很难在Dazzal的示例中添加任何内容:
SELECT (end_mm-start_mm) minutes_diff
FROM
( -- can extract hours and seconds the same way --
SELECT EXTRACT(MINUTE From start_ts) start_mm
, EXTRACT(MINUTE From end_ts ) end_mm
FROM
( -- initial data --
SELECT timestamp '2013-03-22 13:10:55' start_ts
, timestamp '2013-03-22 13:26:35' end_ts
FROM dual
))
/
Output: 16 minutes = 26 -10