Oracle SQL Select语句计算

时间:2016-04-17 18:39:44

标签: sql oracle select

我试图投射一个专栏,从结束时间开始减去员工的开始时间,以获得总工时。

以下是我所拥有的:

select task_name "NAME", to_char(ses_start, 'DD-MON-RR') "DATE", to_char(ses_start,'HH:MI PM') "START", to_char(ses_end, 'HH:MI PM') "END",to_number(to_char(ses_end,'HH24:MI')) - to_number(to_char(ses_start,'HH24:MI')) "TOTAL"

TOTAL专栏没有工作 - 甚至可以做这样的事情吗?它一直工作直到我添加该列,输出类似于:

TASK_NAME          DATE        START      END
----------------- ------------ ---------- -----------
create flyers     26-MAR-16    02:00 PM   04:30 PM
update website    28-MAR-16    11:00 AM   01:00 PM

所以现在我想要一个最后一栏(最好是几个小时):

TOTAL   
-----
2.5
2

或者,至少在几小时和几分钟内(这是我试图做的)......

TOTAL   
-------
02:30
02:00

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

你可以在oracle中减去日期类型,它会给你一个十进制数字,它是以天为单位的持续时间

select 
  task_name, 
  to_char(ses_start, 'DD-MON-RR') DATE,
  to_char(ses_start,'HH:MI PM') START, 
  to_char(ses_end, 'HH:MI PM') END,
  round((ses_end - ses_start) * 24, 2) DURATION_IN_HOUR
...