我的表格如下
workers:
id integer
...
days:
id INTEGER
event_date DATE
worker_id INTEGER
和
hours:
id INTEGER
hr_start VARCHAR2(8)
hr_stop VARCHAR2(8)
day_id INTEGER
我需要一个函数来计算数据库中每个用户当月的小时数总和。字段 hr_start 和 hr_stop 包含格式为 hh:mi:ss 的时间。我需要这个用于 Oracle 数据库。
最佳答案
我在 10g XE 数据库中创建了这些测试表,此查询应该会生成您要查找的内容。
select worker_id,
sum(hrs)
from (select worker_id,
(to_date(hr_stop, 'hh24:mi:ss') - to_date(hr_start, 'hh24:mi:ss')) * 24 hrs
from days d,
hours h
where d.id = h.day_id
and trunc(event_date, 'mm') = trunc(sysdate, 'mm')
)
group by worker_id
关于sql - 如何计算小时数总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1697255/