Oracle SQL - 减去日期类型

Oracle SQL - Subtracting Date types

我正在尝试投影一个列,该列从结束时间减去员工的开始时间以获得总工作时数。

这是我拥有的:

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

有什么建议吗?

您可以在 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
...