|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Débutant
|
J'ai une ancienne base sous access avec différentes données, je veux transférer ces données sous MY SQL
Donc j'exporte ma table dans un fichier texte, je l'importe sous MY SQL et tout va bien sauf les champs date qui affichent : 0000-00-00 00:00:00 Comment faire pour que les dates s'affichent correctement ? |
|
|
00
|
|
|
#2 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 21 ![]() |
A mon avis ceci est du au fait que mysql nécessite un format de date US. Il faudrait donc que tu exécute un traitement (perl?) pour faire la transformation:
JJ-MM-AAAA --> AAAA-MM--JJ |
|
|
00
|
|
|
#3 |
|
Débutant
|
Et je fais ca comment ?
|
|
|
00
|
|
|
#4 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 21 ![]() |
ça dépend de ton fichier texte je ne peux pas te dire exectement comment faire cependant cette fonction peut faire le traitement si tu rentre une date en parametre.
Code :
|
||
|
|
00
|
|
|
#5 |
|
Débutant
|
Mon fichier texte c'est un fichier du bloc note.
Une ligne ressemble à ça : *****;***;**;**;"**";"*******";"******";29/4/1982 00:00:00;"*****************************";"*****";"********";"*************";"*************";;"**************";;;*;;;; sans les étoiles Et je veux que les données dans ma base MY SQL soit en jj/mm/aaaa même quand on les inserera par requête |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Je ne pense pas que tu puisses changer le format des dates de mysql puisque c'est un type par défaut de mysql.
La solution la plus simple serait de stocker tes dates comme des VARCHAR plutot que comme des dates justement, ca dépend donc des opérations que tu fais sur ces champs. |
|
|
00
|
|
|
#7 |
|
Débutant
|
Je ne sais pas quelle va être l'utilisation de ces champs. Je suis en stage et on me demande de prendre la suite du développement un base en pHp
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Dans ce cas, il vaut mieux garder la notion de Date et non pas les stocker en texte. Et donc il va falloir convertir les dates extraites d'access vers le format de date de Mysql
ensuite toutes les dates seront stockées au format de mysql aaaa-mm-jj hh:mm:ss Par contre, a l'affichage des résultats, rien ne t'empeche en php de changer le format donc ca ne changera rien pour l'utilisateur de l'application, c'est a toi de gérer les scripts php pour inscrire les dates dans un format différent |
|
|
00
|
|
|
#9 |
|
Débutant
|
Oui, je sais je suis pas très forte. Mais, je la fais comment la conversion ?
|
|
|
00
|
|
|
#10 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2007 Messages : 21 ![]() |
en php tu peux utiliser ça:
Code :
|
||
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
Il va falloir utiliser des expressions régulieres je pense, donc faire un script php qui lit ton fichier, et convertit les dates. Une fois que t'as le nouveau fichier texte tu peux l'importer dans mysql.
Par contre les expressions régulières ca n'est pas mon fort, désolé! T'as un exemple de fonction qui ferait ca plus haut, c'est tout ce que je peux te dire... |
|
|
00
|
|
|
#12 |
|
Débutant
|
C'est quoi les expressions régulières ?
|
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 2 288 ![]() |
http://php.developpez.com/cours/#langage-regexes
En gros y a plusieurs étapes a faire pour transformer ton fichier 1/ tu lis le fichier avec file_get_contents() 2/ tu découpes ce fichier en un tableau de lignes (pour récupérer chaque ligne) avec les expressions régulières ou juste la fonction php explode() 3/ Pour chaque ligne, tu vas appliquer une sorte de masque (un pattern) qui va permettre de reconnaître la partie à modifier. Pour toi ca revient a dire, "j'ai un ensemble de champs séparés par des virgules, je dois changer ceux qui correspondent a des dates) 4/ Une fois toutes ces lignes modifiées par ton/tes expression(s) régulière(s) tu écris le résultat dans un nouveau fichier avec file_put_contents() 5/ tu importes le nouveau fichier dans mysql. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com