2011-02-10 5 views
1

J'ai un gros fichier Csv que je veux charger en masse sur ma table. Une colonne de ce fichier csv conserve les dates mais au format DD-MM-YYYY. Lorsque je charge ce fichier sur ma table, il ne l'accepte pas, car le format MySQL DATE n'accepte que YYYY-MM-DD. Y a-t-il un moyen de changer cela dans MySQL? J'utilise python pour créer mes tables et pour charger mon fichier dans la table, ce qui n'a pas vraiment d'importance pour ce problème. S'il y a une commande pour cela, s'il vous plaît dites-moi où je devrais le mettre exactement? grâce C'est le code completChanger le format de la date dans MySQL

import MySQLdb,os 

path='data_files' 
absPath = os.path.abspath(path) 
print absPath 


#connecting to the new database 
conn = MySQLdb.connect(host='localhost', 
          user='root', 
          passwd='', 
          db='iens') 

db_cursor = conn.cursor() 

query = "LOAD DATA LOCAL INFILE '"+ absPath + "/recencies" +"' INTO TABLE iens.recensies FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\r\n' (restaurantID,Naam,Date,RecensieText) " 

db_cursor.execute(query) 

conn.commit() 
+2

Que signifie "wanna"? –

+0

Montrez-nous votre code qui charge ces données dans la table et a un problème avec le format de la date. – eumiro

+0

http://www.thefreedictionary.com/wanna – Hossein

Répondre

4

En supposant que votre table a deux colonnes du nom column1 et column2, la date est column2 et qui est la deuxième colonne dans le fichier CSV:

LOAD DATA INFILE 'filename' (column1, @var1) 
SET column2 = STR_TO_DATE(@var1, '%d-%m-%Y') 

La (column1, @var1) partie dit:

  • Le la première colonne du fichier CSV va directement dans la colonne de la base de données column1
  • La deuxième colonne du fichier CSV va dans une variable @var1

La partie SET column2 = dit:

  • Définir la colonne de base de données column2 à tout ce qui sort de l'expression suivante le signe =.
+0

est-il possible de me montrer comment faire cela sur mon propre code? Merci – Hossein

+0

J'ai ajouté quelques explications, j'espère que cela vous aidera à trouver comment appliquer cela à votre code. – Oswald