2016-11-08 3 views
2

У меня есть стол с колонками id, last_name, date_hired Мне нужно узнать количество месяцев с даты и времени. Я не могу понять, как использовать функцию date_hired в функции Months_Between. Вот что у меня есть до сих пор:Получение количества месяцев между двумя датами sql

SELECT LAST_NAME AS Name, 
     MONTHS_BETWEEN(
     TO_DATE(DATE_HIRED,'MM-DD-YYYY'), 
     TO_DATE('01-01-1995','MM-DD-YYYY')) "Months" 
    FROM EMPLOYEES; 

Я искал этот вопрос, но ни один из других вопросов не использовал данные из другого столбца.

+0

Что происходит, когда вы запускаете это? Какой тип данных «date_hired»? Также вы ищете только количество месяцев? –

ответ

1

Если DATE_HIRED является DATE тип данных, использовать

SELECT LAST_NAME AS Name, 
    MONTHS_BETWEEN(DATE_HIRED, SYSDATE) "Months" 
    FROM EMPLOYEES; 

Если это CHAR тип данных (или производные), используют

SELECT LAST_NAME AS Name, 
    MONTHS_BETWEEN(TO_DATE(DATE_HIRED,'MM-DD-YYYY'), SYSDATE) "Months" 
    FROM EMPLOYEES; 

Формат 'MM-DD-YYYY' зависит от сохраненного формата даты строки.

+1

Возможно, вы захотите поставить 'sysdate' в качестве первого аргумента, чтобы вернуть положительное число; а также, возможно, сократить результат, чтобы получить количество целых месяцев? (Также вы указываете модель даты в 'to_date()', поэтому параметры NLS здесь не имеют значения?) –

+1

Правильно, я сохранил формат даты. отремонтированный –

Смежные вопросы