В вашем запросе есть несколько проблем.
Когда вы используете TO_CHAR(HIRE_DATE,'MONTH')
, тогда имя месяца дополняется пробелами, попробуйте TO_CHAR(HIRE_DATE,'"MONTH"')
, чтобы увидеть эффект.Он должен вернуть "MAY "
Другая проблема - текущий сеанс пользователя NLS_DATE_LANGUAGE
, который определяет язык названий месяцев.
Если вы настаиваете на использовании названий месяцев, используйте
WHERE TO_CHAR(HIRE_DATE,'fmMONTH', 'NLS_DATE_LANGUAGE = American') IN ('MAY','NOVEMBER')
или
WHERE TRIM(TO_CHAR(HIRE_DATE,'MONTH', 'NLS_DATE_LANGUAGE = American')) IN ('MAY','NOVEMBER')
Однако лучше всего использовать не имена, а номера месяцев.Вместо TO_CHAR(HIRE_DATE,'MM')
вы также можете использовать EXTRACT(MONTH FROM HIRE_DATE)
, который возвращает месяц в виде числа.