0

我被困在一个查询中,对于一个员工,我试图找到他从雇用日期或任何日期间隔开始工作的总天数,即它应该返回总天数

我进行了查询以查找从某个日期间隔开始工作了 100 天的员工

 select first_name,salary,hire_date, from employees
 where 
  hire_date + to_dsinterval('10 10:00:00')<= date'2003-01-01';

如何修改它以返回总天数?

我正在使用 Oracle Database 11g Express Edition HR 模式。

时间和小费

4

2 回答 2

1

解决方案是如果从特定日期查找总工作天数查询将是

select first_name,salary,hire_date,(date'2003-01-01'-hire_date)  totaldays 
from employees
where 
hire_date + to_dsinterval('10 10:00:00')<= date'2003-01-01';

以及截至当前日期的所有工作日

select first_name,salary,hire_date,round((sysdate-hire_date))  totaldays 
from employees
where 
hire_date + to_dsinterval('10 10:00:00')<= date'2003-01-01';
于 2013-05-09T09:46:19.977 回答
0

要返回两个日期之间的总天数:

SELECT empno, hr_date, (end_dt - hr_date) days_btwn
  FROM
(
 SELECT empno, hiredate hr_date, trunc(sysdate) end_dt
   FROM scott.emp
)
/

-- Same as above --
SELECT empno, hiredate
     , trunc(sysdate)  today
     , (trunc(sysdate) - hiredate)  days_btwn
  FROM scott.emp
 /

EMPNO    HIREDATE    TODAY    DAYS_BTWN
----------------------------------------
7369    12/17/1980    5/9/2013    11831
7499    2/20/1981     5/9/2013    11766
7521    2/22/1981     5/9/2013    11764
7566    4/2/1981      5/9/2013    11725
...
于 2013-05-09T15:27:22.020 回答