Convertir Champ VARCHAR en DATE

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
CCC94
Membre lOOyal
Membre lOOyal
Messages : 26
Inscription : 02 avr. 2019 17:59

Convertir Champ VARCHAR en DATE

Message 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....
Pièces jointes
Base CCC94-CONVERTION.odb
(62.13 Kio) Téléchargé 168 fois
LibeOffice Base 4.3.5.2 sous Mac OS 10.6.8 Par Obligation
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Base] Convertir Champ VARCHAR en DATE

Message 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+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12196
Inscription : 08 nov. 2005 17:23
Localisation : Caen, France
Contact :

Re: [Base] Convertir Champ VARCHAR en DATE

Message 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.
CCC94
Membre lOOyal
Membre lOOyal
Messages : 26
Inscription : 02 avr. 2019 17:59

Re: Convertir Champ VARCHAR en DATE

Message 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...
LibeOffice Base 4.3.5.2 sous Mac OS 10.6.8 Par Obligation
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: Convertir Champ VARCHAR en DATE

Message 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+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
CCC94
Membre lOOyal
Membre lOOyal
Messages : 26
Inscription : 02 avr. 2019 17:59

Re: Convertir Champ VARCHAR en DATE

Message 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....
LibeOffice Base 4.3.5.2 sous Mac OS 10.6.8 Par Obligation
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12196
Inscription : 08 nov. 2005 17:23
Localisation : Caen, France
Contact :

Re: Convertir Champ VARCHAR en DATE

Message 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.
Avatar de l’utilisateur
tintin
GourOOu
GourOOu
Messages : 9339
Inscription : 18 juil. 2008 17:29
Localisation : F-Oise + F-Savoie

Re: Convertir Champ VARCHAR en DATE

Message 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.
AOO 4.1.15 et LibO stable 7.6.5 / macOS Intel 13.6.5 Ventura
Adoptium-temurinJDK-jre_1.8.0_402 / Firefox/Safari/Thunderbird /Time Machine+cloneCCC
Tutoriels du forum pour macOS
Pour sauvegarder vos documents c'est ceinture ET bretelles
Répondre