Я пытаюсь вычислить ages
для people
по отношению к данным monthly
, поэтому их birth date
будет отображать круглое число за данный месяц.
Однако у меня есть несколько строк, которые предоставляют мне negative
возрастов.
Есть ли способ в этой формуле сделать это
1. Absolute
Соотношение?
2. Birth date
больше, чем год, просто дайте мне 0
?Возрастные расчеты
floor(months_between(to_date('31-JAN-14','DD-MON-YY'),DATE_OF_BIRTH)/12) as AGE
Похоже, вы нашли одну из проблем с двухзначными годами. Эти будущие даты рождения, вероятно, произошли в 1900 году или ранее, но, пройдя только две последние цифры, вы потеряли информацию о столетии. Если вы загружаете данные о возрасте, попробуйте изменить маску формата с «DD-MON-YY» на «DD-MON-RR», чтобы лучше угадать правильное столетие, а не просто использовать текущий век. – Sentinel
Что означает, что «дата рождения» будет больше, чем год? Какой год? Мы просто сравниваем годы или делаем месяцы и дни? В приведенном выше примере, если DOB был 1-Jun-14, тогда годы одинаковы (они оба равны 14), но DOB в будущем, поэтому ваша функция возвращает возраст -1, ABS которого составляет 1. Это ваш желаемый результат? – Sentinel