2015-12-11 65 views
0

我想根據這個問題顯示輸出。計算體驗的子查詢

使用子查詢,顯示戴維斯卡爾之前聘用的所有教員的姓名及其服務年限(四捨五入爲小數點後0位)。

這裏是我的查詢:

Select CONCAT(FName,' ',LName) As 'Faculty Name' ,faculty.DateHired AS 'Years Of Services' 
from faculty 
where faculty.DateHired < (select faculty.DateHired from faculty where faculty.FacultyID = 1239) 

我想算的服務年資,但輸出顯示日期僱用像(2000-08-22)。

但是我想表明類似這樣的輸出:

faculty name | years of experience 

Dean joans  19 

sean ali  14 

我不知道如何做到這一點好心請幫我哪裏做錯了。 如果您想查看在給定屏幕截圖中可以看到的任何數據。 感謝enter image description here

+0

如果'DateHired'是起始數據點,想想其他的數據點必須得到服務年限。然後在查詢中使用相同的計算。 – JRD

+0

您需要提供表DDL以查看數據中日期列的數據類型。 –

回答

0

使用此:

select 
    concat(fname,' ',lname) as facultyname, 
    year(curdate()) - YEAR(datehire) 
     - (date_format(curdate(), '%m%d') < date_format(datehire, '%m%d')) 
    as yearsofservice 
from faculty where datehire < (
    select datehire from faculty where lname='Carr' and fname='Davis' 
); 

還要檢查這個答案How to get the difference in years from two different dates?