在Oracle SQL中,可以使用日期函数和数值函数来将持续时间拆分为每小时间隔。以下是一种常见的方法:
CREATE TABLE duration_table (
start_time TIMESTAMP,
end_time TIMESTAMP
);
SELECT
start_time,
end_time,
EXTRACT(HOUR FROM (end_time - start_time)) AS duration_hours,
EXTRACT(MINUTE FROM (end_time - start_time)) AS duration_minutes,
EXTRACT(SECOND FROM (end_time - start_time)) AS duration_seconds
FROM duration_table;
在这个查询中,我们使用了EXTRACT函数来从时间差中提取小时、分钟和秒。你可以根据需要调整查询结果的格式。
WITH duration_intervals AS (
SELECT
start_time,
end_time,
EXTRACT(HOUR FROM (end_time - start_time)) AS duration_hours,
EXTRACT(MINUTE FROM (end_time - start_time)) AS duration_minutes,
EXTRACT(SECOND FROM (end_time - start_time)) AS duration_seconds
FROM duration_table
)
SELECT
start_time,
end_time,
duration_hours,
duration_minutes,
duration_seconds,
(duration_hours * 60 + duration_minutes + duration_seconds / 60) AS duration_in_minutes
FROM duration_intervals;
在这个查询中,我们使用了公式(duration_hours * 60 + duration_minutes + duration_seconds / 60)来计算每个时间间隔的持续时间(以分钟为单位)。
这是一个基本的示例,你可以根据具体的需求进行调整和扩展。关于Oracle SQL的更多详细信息和用法,请参考Oracle官方文档。
领取专属 10元无门槛券
手把手带您无忧上云