В Oracle DATEDIFF не работает и тогда как вывести возраст по дате рождения, учитывая, что дня рождения в этом году еще не было. И есть ли возможность обойтись без SYSDATE, т.е не узнавать текущую дату у системы?
На самом деле, DATEDIFF вам совершенно ни к чему. Нужно всего лишь вычесть год рождения из текущего, а затем уменьшить результат на единицу, если месяц рождения больше текущего или месяцы равны, а дата больше.
Можно свести это к одной формуле год * 10000 + месяц * 100 + день.
Нацело делим разницу на 10000 - получаем возраст.
В mssql я приводил дату др к текущему году, а там уже просто если было др(приведенная дата меньше текущей) значит столько лет, если небыло, значит на один меньше.