Чтобы исправить ваш запрос, вам нужно выполнить арифметику даты.
SELECT
(first_name || ' ' || last_name) AS name,
hire_date,
ROUND(sysdate - hire_date) AS days
FROM hr.employees
WHERE sysdate - hire_date > 6*365;
Но если вы проанализируете -> hr schema , вы обнаружите, что для этого существует таблица job_history, соответствующая этому.задача.На мой взгляд, правильное решение должно быть таким:
SELECT a1.name,
a1.hire_date,
a1.days
FROM
(SELECT employees.employee_id,
(employees.first_name || ' ' || employees.last_name) AS name,
employees.hire_date,
SUM(NVL(job_history.end_date, TRUNC(sysdate)) - NVL(job_history.start_date, hire_date)) AS days
FROM hr.employees
LEFT JOIN hr.job_history
ON job_history.employee_id = employees.employee_id
GROUP BY employees.employee_id,
(employees.first_name || ' ' || employees.last_name),
employees.hire_date
) a1
WHERE days > 365*6;