-- 년월일
DECLARE
d1 DATE;
d2 DATE;
years NUMBER;
months NUMBER;
days NUMBER;
BEGIN
d1 := to_date( "09-JUL-2007", "DD-MON-YYYY" );
d2 := to_date( "24-JUL-1995", "DD-MON-YYYY" );

years := trunc( months_between( d1, d2 ) / 12 );
months := mod( trunc( months_between( d1, d2 ) ), 12 );
days := d1 - add_months(d2,trunc( months_between( d1, d2 ) ));

dbms_output.put_line( "years = " || years);
dbms_output.put_line( "months = " || months);
dbms_output.put_line( "days = " || days);
END;
/


<결과>
years = 11
months = 11
days = 15




-- 년월일시분초
DECLARE
d1 DATE;
d2 DATE;
years NUMBER;
months NUMBER;
days NUMBER;
hours NUMBER;
minutes NUMBER;
seconds NUMBER;

BEGIN
d1 := to_date( "09-JUL-2007 23:10:43", "DD-MON-YYYY HH24:MI:SS" );
d2 := to_date( "24-JUL-1995 10:09:40", "DD-MON-YYYY HH24:MI:SS" );

years := trunc( months_between( d1, d2 ) / 12 );
months := mod( trunc( months_between( d1, d2 ) ), 12 );
days := trunc(d1 - add_months(d2,trunc( months_between( d1, d2 ) )));
hours := trunc( mod( (d1-d2)*24, 24 ) );
minutes := trunc( mod( (d1-d2)*24*60, 60 ) );
seconds := trunc( mod( (d1-d2)*24*60*60, 60 ) );

dbms_output.put_line( "years = " || years);
dbms_output.put_line( "months = " || months);
dbms_output.put_line( "days = " || days);
dbms_output.put_line( "hours = " || hours);
dbms_output.put_line( "minutes = " || minutes);
dbms_output.put_line( "seconds = " || seconds);

END;
/


<결과>
years = 11
months = 11
days = 15
hours = 13
minutes = 1
seconds = 3