2016-02-19 4 views
1

Я пытаюсь найти годы с тех пор, как студент поступил.SQL пытается найти количество лет с

Вопрос: Создать список имен студентов наряду с количеством лет, так как они включены (круглый до 2 знаков после запятой) для тех студентов код города 212.

Мой код:

SELECT first_name, last_name, TO_DATE(enrollment_date) - TO_DATE(sysdate) Years 
FROM student 
WHERE phone LIKE '212%' 
ORDER BY years; 

У меня проблемы с поиском лет. Я должен использовать TO_DATE или TO_CHAR, чтобы узнать это. Sysdate - это то, что я пытаюсь использовать для сравнения. Я попал в дорожный блок и не помню, как это сделать.

+0

Какая версия SQL вы используете? Oracle? Что-то другое? – RSax

+0

Я использую Oracle – Chase

ответ

1

Try:

SELECT first_name, 
      last_name, 
      ROUND((MONTHS_BETWEEN(SYSDATE, TO_DATE(enrollment_date))/12), 2) AS Years 
    FROM student 
    WHERE phone LIKE '212%' 
    ORDER BY years; 
+0

Это дало мне ошибку. Ошибка в командной строке: 3 Колонка: 38 Сообщение об ошибке SQL Error: 0RA-00936: отсутствует выражение – Chase

+0

Я думаю, что я пропустил скобку, я отредактировал мой ответ –

+0

его все еще дает мне ошибку. Ошибка при запуске в строке 1 в команде: ВЫБРАТЬ first_name, last_name, ROUND ((MONTHS_BETWEEN (SYSDATE, ДАТА REGISTRATION_DATE)/12), 2) Годы от студента КУДА телефон, как '212%' Ошибка в командной строке : 3 Колонка: 39 Сообщение об ошибке: Ошибка SQL: ORA-00936: отсутствует выражение 00936. 00000 - "отсутствует выражение" * Причина: * Действие: – Chase