2016-11-11 83 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

相关问题