2016-11-11 59 views
2

我想顯示部門中的員工達到二十週年工作週期的日期。這是我有:將日期格式化爲文字

select e.last_name, e.department_id, add_months(min(h.start_date), 240) as "20 Year Anniversary" 
    from employees e 
    inner join job_history h 
    on h.employee_id = e.employee_id 
    group by e.department_id, e.last_name; 

這顯示:

Last_Name Department_ID 20 Year Anniversary 
    1 Hartstein    20 17-FEB-16 
    2 Bob     90 21-SEP-09 

等。但我想以這種格式顯示日期:一月二十一日,一九八二年。我將如何格式化日期?

+0

的官方文檔頁面那是什麼'GROUP BY'呢?所以史密斯在採購部門的所有日期都是同一天?這似乎沒有道理。 –

+0

@ThorstenKettner - 從每個員工的工作歷史中獲得最早的開始日期?但是,是的,員工ID需要包含在組中,不是。 –

回答

2

我想這是你在找。 TO_CHAR日期formatting.Check了甲骨文

http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions180.htm

select e.last_name, e.department_id,to_char(add_months(min(h.start_date), 240),'Month fmDdsp, Year') as "20 Year Anniversary" 
    from employees e 
    inner join job_history h 
    on h.employee_id = e.employee_id 
    group by e.department_id, e.last_name; 
+1

我會在月份之前放置FM修改器,以便不用空格填充? –

+1

感謝法茲,起初我以爲我需要連接,但這並不奏效。並且謝謝Alex,提供空間建議。 – Tim

+0

非常歡迎:D – Faz13able