Utiliser
select (date '2013-01-01' + interval '53 days')::date
ou
select cast(date '2013-01-01' + interval '53 days' as date)
Fonction SQL standard de PostgreSQL "extract()" va fonctionnent sur les horodatages, mais a) "date" n'est pas un argument valide pour extract(), et b) il renvoie des sous-champs, pas une collection de sous-champs. Conceptuellement, une date consiste en une collection de trois sous-champs :année, mois et jour.
select extract(year from current_timestamp),
extract(month from current_timestamp),
extract(day from current_timestamp),
-- Concatenate and cast to type "date".
(extract(year from current_timestamp) || '-' ||
extract(month from current_timestamp) || '-' ||
extract(day from current_timestamp))::date