Il ne semble pas que vous souhaitiez ajouter des zéros non significatifs, il semble que vous ne convertissiez pas votre date en un caractère exactement comme vous le souhaitez. Le modèle de format date/heure de TO_CHAR() est extrêmement puissant, utilisez-le pleinement.
select to_char(dt, 'yyyymmdd') as dayid
from atm_facts
Pour répondre réellement à votre question, vous pouvez utiliser un format numérique modèle avec TO_CHAR() pour compléter avec des 's en tête.
Par exemple, ce qui suit renvoie 006
select to_char(6, 'fm009') from dual;
Vous pouvez utiliser le modificateur de modèle de format fm
, mentionné dans les documents ci-dessus, pour supprimer les espaces de début si nécessaire.