簡體   English   中英

如何計算小時數?

[英]how to calculate sum of hours?

我的表如下

工作人員:

id整數

...

天:

id整數

event_date DATE

worker_id INTEGER

小時:

id整數

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
SELECT w.id, SUM(DATEDIFF(h, hr_start, hr_end))
FROM workers w
INNER JOIN days d ON w.id = d.worker_id
INNER JOIN hours h ON d.id = h.day_id
GROUP BY w.id

抱歉,我只知道SQL Server。 您可以嘗試使用下面的鏈接示例通過減法和舍入來計算小時數。

http://www.orafaq.com/faq/how_does_one_get_the_time_difference_between_two_date_columns

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM