在 sql 查询中提取月份

extract month in sql query

可以在员工table(部门50、60、 80)?

提示:1 月是第 50、60 和 80 部门雇用员工的月份。

table中的数据可能是这样的

Hiredate                Department_id
29-JAN-97                   50
03-JAN-90                   60
29-JAN-00                   80

您编写的 SQL 的输出应该产生如下内容:

Month Name
------------------
January 

我真的不知道从哪里开始。请帮忙!

要从 hiredate 列获取 departments 列表的 MONTH NAME,请使用 TO_CHARMonth format.

请阅读文档以了解有关 Format models and datetime format elements.

的更多信息

MONTH -- Name of month, padded with blanks to length of 9 characters.

例如,

SELECT DISTINCT TO_CHAR(hiredate, 'Month') Month_name, department_id dept
   FROM employees
WHERE department_id IN (50, 60, 80);
select mth "Month" 
  from (
    select distinct department_id, to_char(hire_date, 'Month') mth
      from employees
      where department_id in (50, 60, 80) ) 
  group by mth 
  having count(1)=3

SQLFiddle

内部查询在每个部门中选择不同的月份。 现在您只需要计算这些月份并显示 count = 3 的行。这是在外部查询中使用 group byhaving 完成的。