Hi Martin. I don't think that really gets at what's actually being stored. For example, look at a 2-year interval. Tom says they are being represented internally as Months, Days and Microseconds. But if you use extract it does not report anything for these values, because for example months which might be 24 internally is being reported as 0 because years is reported as 2:
SELECT EXTRACT(YEARS FROM '2 years'::interval) AS years, EXTRACT(MONTHS FROM '2 years'::interval) AS months, EXTRACT(DAYS FROM '2 years'::interval) AS days, EXTRACT(MICROSECONDS FROM '2 years'::interval) AS seconds;
years | months | days | seconds -------+--------+------+--------- 2 | 0 | 0 | 0