Page 1 sur 1

Convertir Champ VARCHAR en DATE

Publié : 14 avr. 2019 21:19
par CCC94
Bonjour à vous,

Je travaille sur libreOffice Base. J'ai un champ VARCHAR qui contient des dates (au format texte puisque VARCHAR) qui ont été saisi sous cette forme: jj/mm/aa je souhaite avoir ses dates dans un champ DATE.
J'ai essayé de convertir mon champ VACHAR contenant des jj/mm/aa en champ DATE sans y parvenir.
J'ai donc créé un nouveau champ au format DATE et j’essaye de copier le contenu de mon champ VARCHAR dans ce nouveau champ DATE en convertissant les données sans y parvenir. J'ai essayé "CONVERT" , j'ai essayé SELECT CAST( CHAR AS DATE ) rien n'y fait.... il y a des discussions notées résolu mais qui ne le sont pas....
Auriez vous une idée... je mets une base en exemple. dans le formulaire F_PRINCIPAL le champ datetexte et dateDATE devraient avoir les même date...
Merci de votre aide....

Re: [Base] Convertir Champ VARCHAR en DATE

Publié : 14 avr. 2019 22:50
par Piaf
Bonsoir
CCC94 a écrit :l y a des discussions notées résolu mais qui ne le sont pas....
A priori si les auteurs ont marqué Résolu, c'est qu'elles le sont.
Pourquoi poser la question dans la section Macros et API ?
L'outil SQL permet de faire ce que tu demandes.
Si l'année de tes dates n'est qu'à partir de 2000

Code : Tout sélectionner

UPDATE "T-Grand COLLER" SET "DateDATE" = '20' || RIGHT( "DateTexte", 2 ) || '-' || SUBSTR( "DateTexte", 4, 2 ) || '-' || LEFT( "DateTexte", 2 )
SQL.png
Si tu as des années en 19??

Code : Tout sélectionner

UPDATE "T-Grand COLLER" SET "DateDATE" = CASEWHEN(RIGHT("DateTexte",2)<= '19','20' || RIGHT( "DateTexte", 2 ) || '-' || SUBSTR( "DateTexte", 4, 2 ) || '-' || LEFT( "DateTexte", 2 ),'19' || RIGHT( "DateTexte", 2 ) || '-' || SUBSTR( "DateTexte", 4, 2 ) || '-' || LEFT( "DateTexte", 2 ))
A+

Re: [Base] Convertir Champ VARCHAR en DATE

Publié : 15 avr. 2019 09:48
par Bidouille
Piaf a écrit :Pourquoi poser la question dans la section Macros et API ?
Effectivement, le problème n'a rien à voir avec les macros.
Transfert dans la section Base qui traite des questions sur le SQL.

Merci de faire un effort quant à poster au bon endroit la prochaine fois.

Re: Convertir Champ VARCHAR en DATE

Publié : 16 avr. 2019 07:43
par CCC94
Milles excuses pour la rubrique, je n'avais pas trouvé le bon emplacement pour le SQL.
Merci pour le code, je ne l'aurais pas trouvé seul.... par contre, les dates sont bien copiées, mais à l'envers, sous la forme AA-mm-jj
comment faire pour les avoir sous la forme jj/mm/AA ?
Merci de ton aide...

Re: Convertir Champ VARCHAR en DATE

Publié : 16 avr. 2019 16:34
par Piaf
Bonjour
CCC94 a écrit :par contre, les dates sont bien copiées, mais à l'envers, sous la forme AA-mm-jj
Je ne reproduis pas
dte.png
Vérifie le format de la date dans la table.
A+

Re: Convertir Champ VARCHAR en DATE

Publié : 17 avr. 2019 09:00
par CCC94
Bonjour, et merci de ta réponse... j'ai deux problèmes.
1) dans ma vraie base, quand je rentre ton code , j'ai cette erreur :

Code : Tout sélectionner

1: Wrong data type: java.lang.NumberFormatException: For input string: "2/"
J'ai cru qque j'avais des dates à 5 chiffres au lieu de 6 dans ma base (6/10/18 au lieu de 06/10/18) j'ai fais des test ce n'est pas ça.
Si tu as une idée ?? sinon je fabrique une base qui ne fonctionna pas et je la mets ici...
2) Dans la base exemple (Base CCC94-CONVERTION.odb) si tu cherches une date (exemple 22/04/19) dans le champ : Date Format DATE du formulaire F_PRINCIPAL à l'aide de l'outil "recherche" (symbolisé par une loupe) LibreOffice ne trouve rien.
je tape 22-04-19 -> enter = LibreOffice ne trouve rien.
je tape 19/04/22 -> enter = LibreOffice ne trouve rien.
je tape 19-04-22 -> enter = LibreOffice trouve la fiche

comment revenir au format normal jj/mm/aa ?

Merci de ton aide....

Re: Convertir Champ VARCHAR en DATE

Publié : 14 juin 2019 17:17
par Bidouille
Bonjour,
CCC94 a écrit :sinon je fabrique une base qui ne fonctionna pas et je la mets ici...
60 jours plus tard, c'est effectivement le mieux que vous ayez à faire.

Vous êtes aussi invité à tester avec une version à jour car celle que vous avez est largement obsolète.

Re: Convertir Champ VARCHAR en DATE

Publié : 14 juin 2019 17:22
par tintin
Bonjour,

À sa décharge,
Prérequis logiciels et matériels - Mac OS X a écrit :Mac OS X 10.9 (Mavericks) ou supérieur [...]
LibreOffice 4.3 peut fonctionner encore sur OS X 10.6.x, mais veuillez noter que ce support s'est terminé avec la fin de la branche 4.3 le 27 mai 2015.
Mais 10.6.x (Snow Leopard) date de 2009 et nous en sommes à 10.14.5.