2013-05-09 73 views
0

我被困在一個查詢中,對於員工,我試圖找到他從僱傭日期或任何日期間隔這個問題,即它應該返回總天數查找僱員從當前日期或從那裏開始工作的總天數僱用日期

我做了查詢,發現誰也來回工作100天從日期間隔

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

如何修改它的員工重返總的無天?

我正在使用Oracle數據庫11g快捷版HR模式。

的時間和小費

+0

你可以減去天'其中SYSDATE - hire_date> = 100'也選擇它:'select ...,SYSDATE - hire_date as no_days' – danihp 2013-05-09 09:31:06

+0

嗨danihp thxs沒有罷工,我先打斷我試圖用sysdate減去它謝謝你現在工作很多 – 2013-05-09 09:38:56

+0

我發現使用'interval'文字而不是'to_dsinterval()'更容易閱讀(並理解):'interval'100'day' – 2013-05-09 12:14:15

回答

0

的解決辦法是,如果從某一特定日期的總工作天數找到的查詢是

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'; 
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 
... 
相關問題