Menu

LibreOffice Base Convertir champ VARCHAR en champ DATE

Messages postés
12
Date d'inscription
mardi 12 mars 2019
Statut
Membre
Dernière intervention
13 avril 2019
-
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 jj'essaye de copier le contenu de mon champ VARCHAR dans ce nouveau champ DATE sans y parvenir. J'ai essayé "CONVERT" , j'ai essayé SELECT CAST( CHAR AS DATE ) rien n'y fait.... il y a une discussion sur CCM notée résolu mais qui ne l'est pas....
Auriez vous une idée...
Merci de votre aide....
Afficher la suite 

Votre réponse

2 réponses

Messages postés
24882
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
14 avril 2019
9055
0
Merci
Bonjour,

Je ne connais pas les commandes pour ta bdd (convert, cast, ...) mais si je devais le faire en sql avec Oracle ce serait la commande suivante :

update tabtst set coldate=to_date(coltexte,'dd/mm/yyyy'); 

La commande
update
puisque l'on souhaite mettre à jour la bdd et le champ date est affecté de la valeur convertie du champ texte. Il faut donc remplacer la fonction
to_date()
d'Oracle par l'équivalent dans ta bdd.

Cdlt
CCC94
Messages postés
12
Date d'inscription
mardi 12 mars 2019
Statut
Membre
Dernière intervention
13 avril 2019
-
Bonjour Jee Pee, merci de l'aide, mais je crois effectivement que libreOffice base est très différent d'Oracle.
J'ai essayé ton code, il ne fonctionne pas. UPDATE nous est commun, SET aussi, après les coldate et coltexte... je ne pense pas. Je mets une base en exemple.
Dans le F_PRINCIPAL il y a le champ "DateTexte" (VARCHAR) qui a été renseigné sous la forme jj/mm/aa que je dois retrouver à l'identique dans le champ "Date DATE" (DATE).
Merci de ton aide...

P.S.: je ne vois plus le lien pour insérer un fichier.....
jee pee
Messages postés
24882
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
14 avril 2019
9055 > CCC94
Messages postés
12
Date d'inscription
mardi 12 mars 2019
Statut
Membre
Dernière intervention
13 avril 2019
-
Il faut bien sur que tu remplaces le nom de table et de colonnes de mon exemple par les tiennes.

J'ignore les commandes de OO LO. Et ce n'est guère documenté, pas vraiment considéré comme une vraie base de données ;-)

Tu as vraiment un champ "Date DATE" ? c'est souvent une mauvaise idée un blanc dans un nom.

Sur CCM on ne peut pas insérer de fichiers, on peut mettre du code puis le formater avec la balise CODE en icone sur la zone de message, ou insérer une image, pareil avec l'icone à droite au dessus de la saisie texte.
Commenter la réponse de jee pee
Messages postés
12
Date d'inscription
mardi 12 mars 2019
Statut
Membre
Dernière intervention
13 avril 2019
0
Merci
oui sur CCM on ne peut pas joindre de fichier.... Exact...
J'ai essayé des choses comme ça:
UPDATE "T-Grand COLLER" SET  "EnvoiDocLeDate" = "Envoi Doc le" (coltexte,'dd/mm/yy'); 

mais je me demande si ton code permet de convertir les données texte en date dans le même champ ou s'il copie les données en les convertissant dans un autre champ ?
j’ai essayé ça aussi :
UPDATE "T-Grand COLLER" SET  "EnvoiDocLeDate" = DATE ("Envoi Doc le" ,'dd/mm/yy'); 

Mais je patauge....

Mais encore plus important, au départ ma base était sous "iWork" vieux logiciel mac en 10.6.8 j'ai cherché les meilleurs bases de données pour convertir ma base, mon résultat = ACCESS qui ne tourne que sur windows, FileMaker qui ne tourne que sur MAC et LibreOffice qui tourne sur tous les systèmes.... j'ai cru comprendre que les 3 étaient équivalentes.....
jee pee
Messages postés
24882
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
14 avril 2019
9055 -
C'est dans un autre champ : coltexte varchar et coldate date.

Pour chercher la bonne fonction à utiliser tu devrais essayer avant l'update, le select

SELECT XXXXX("Envoi Doc le" ,'dd/mm/yy') from "T-Grand COLLER" ; 
il faut trouver la fonction XXXXX qui va bien.
castours
Messages postés
3000
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
14 avril 2019
186 -
bonjour
si tu veux echanger ton fichier , compresse le en zip puis copie le dans un lien que tu avec ci_oint.com.ce lien tu le copies dans un message de comment ca marche
Commenter la réponse de CCC94