Vous n'êtes pas identifié(e).

#1 08/12/2009 12:35:01

lfiore
Membre

probleme avec la fonction lpad() sous postgre 8.4

Bonjour,
J'ai un probleme avec la fonction lpad sous postgreSQL8.4
Ma recherche:

lpad(date_part('day', b.date_naissance),2,'0')

Cette ligne dans ma requete fonctionnait parfaitement sous postgre 8.0.2 mais depuis que je suis passé en 8.4 elle ne fonctionne plus! l'erreur est la suivante:

ERROR: function lpad(double precision, integer, unknown) does not exist

Je suis visiblement obligé d'utliser un String pour mon premier parametre...

Y a t'il un parametre à modifier dans postgresql.conf pour pouvoir accepter autre chose?

Merci de votre aide

Hors ligne

#2 08/12/2009 13:04:07

gleu
Administrateur

Re : probleme avec la fonction lpad() sous postgre 8.4

Y a t'il un parametre à modifier dans postgresql.conf pour pouvoir accepter autre chose?

Non, PostgreSQL est très pointilleux sur les types de données, à partir de la version 8.3. Certaines conversions implicites ont été supprimées, il faut donc ajouter la conversion explicite comme ceci :

lpad(date_part('day', b.date_naissance)::text,2,'0'::text)

Guillaume.

Hors ligne

#3 08/12/2009 13:07:28

lfiore
Membre

Re : probleme avec la fonction lpad() sous postgre 8.4

Ca fonctionne parfaitement! Merci beaucoup pour votre aide!

Hors ligne

Pied de page des forums