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.

Convertir Champ VARCHAR en DATE

Messagepar CCC94 » 14 Avr 2019 20:19

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é 22 fois
LibeOffice Base 4.3.5.2 sous Mac OS 10.6.8 Par Obligation
CCC94
Membre lOOyal
Membre lOOyal
 
Message(s) : 26
Inscrit le : 02 Avr 2019 16:59

Re: [Base] Convertir Champ VARCHAR en DATE

Messagepar Piaf » 14 Avr 2019 21:50

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   AgrandirRéduire
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   AgrandirRéduire
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
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Base] Convertir Champ VARCHAR en DATE

Messagepar Bidouille » 15 Avr 2019 08:48

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.
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 10188
Inscrit le : 08 Nov 2005 17:23
Localisation : Brest, France

Re: Convertir Champ VARCHAR en DATE

Messagepar CCC94 » 16 Avr 2019 06:43

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
CCC94
Membre lOOyal
Membre lOOyal
 
Message(s) : 26
Inscrit le : 02 Avr 2019 16:59

Re: Convertir Champ VARCHAR en DATE

Messagepar Piaf » 16 Avr 2019 15:34

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
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: Convertir Champ VARCHAR en DATE

Messagepar CCC94 » 17 Avr 2019 08:00

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   AgrandirRéduire
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
CCC94
Membre lOOyal
Membre lOOyal
 
Message(s) : 26
Inscrit le : 02 Avr 2019 16:59

Re: Convertir Champ VARCHAR en DATE

Messagepar Bidouille » 14 Juin 2019 16:17

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
Bidouille
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 10188
Inscrit le : 08 Nov 2005 17:23
Localisation : Brest, France

Re: Convertir Champ VARCHAR en DATE

Messagepar tintin » 14 Juin 2019 16:22

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.7 et LibO 6.2.8 / macOS 10.15.1 Catalina
adoptopenjdk.jre 1.8.0_232 / Firefox / Safari / Thunderbird / Time Machine
Pour préserver vos documents, faites régulièrement des sauvegardes.
Avatar de l’utilisateur
tintin
GourOOu
GourOOu
 
Message(s) : 6337
Inscrit le : 18 Juil 2008 16:29
Localisation : F-Oise + F-Savoie


Retour vers Base de données

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 5 invité(s)