Ich denke, Sie könnten das vereinfachen zu etwas wie:
SELECT
t.id AS topic_id,
CURRENT_DATE - t.created_at::date AS days_old
FROM topics t
ORDER BY t.created_at DESC
Es gibt auch eine nette Funktion reltime$time, die Sie für relative Zeitangaben verwenden können (obwohl sie eher für Zeiträume von weniger als 30 Tagen nützlich ist, da sie sonst Daten anzeigt).
SELECT
t.id AS topic_id,
t.created_at AS reltime$time
FROM topics t
ORDER BY t.created_at DESC