8792 sujets

Développement web côté serveur, CMS

Bonjour
J'importe via un input type=file une extraction de bdd dans une table mysql. Dans les données importées il y a des dates au format 05-jul-2006 11:00:40 que je voudrai convertir en jj/mm/aa avant traitement. Pour ce j'ai fait une requête qui me renvoie l'erreur:
#1270 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT), (utf8_general_ci,COERCIBLE), (latin1_swedish_ci,IMPLICIT) for operation 'concat' (sans les slach)
#1271 - Illegal mix of collations for operation 'concat' (avec les slach)
UPDATE tbl_re SET DTE_LIV=QUOTE(CONCAT(LEFT(DTE_LIV,2),'/',ELT(FIELD(SUBSTRING(DTE_LIV,4,3),'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'),'01','02','03','04','05','06','07','08','09','10','11','12'),'/',SUBSTRING(DTE_LIV,10,2)) )WHERE DTE_LIV NOT LIKE '%/%'

Nota si je fait un SELECT avec la même formule en remplaçant DTE_LIV par la date, ça fonctionne! Testé sur easyphp1.8
Hip,

Tu peux me dire où tu es allé voir qu'on faisait un CONCAT(LEFT(DTE_LIV,2) dans une requête UPDATE ? Smiley ohwell
Modifié par Bison (28 Oct 2006 - 11:51)
Les données sont importées, le champs DTE_LIV est au format texte alors soit j'utilise cette formule pour convertir la date dans le format désiré (jj/mm/aa texte) soit je trouve dans la bible mysql une solution mais apparament y a pas et de plus je ne maitrise pas le fichier source.
Au final cette date sera intégrée dans un concaténation de données pour affichage en info.
Le concat permet de reconstituer la date en récupérant une partie des élément et en les transposant si besoin pour arriver à ses fins. Il se termine à l'avant dernière parenthèse.
[cloturé]Finalement j'ai trouvé. C'est une valeur nulle dans une ligne du champs qui provoquait l'erreur.