Importation de dates de Excel vers MySQL

Fermé
GrifOli Messages postés 2105 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 - Modifié par GrifOli le 18/06/2012 à 04:30
 Utilisateur anonyme - 18 juin 2012 à 10:08
Bonjour,

Tout d'abord, j'ai un fichier .xlsx dans lequel j'ai des cellules qui contiennent des dates formattées sous le format " jj mmmm " (l'année est entrée sur la même ligne mais dans une autre cellule). Par exemple, si j'entre la date "12 juillet" dans ma cellule Excel, il sera écrit dans cette même cellule "12 juillet".

Ensuite, j'enregistre mon fichier excel en fichier .CSV, puis je l'importe dans ma base de données MySQL.

Le souci, c'est que je ne sais pas quel type de champ je dois donner à ma colonne de date pour que MySQL reconnaisse qu'il s'agit d'une date. Si je lui donne le type "DATE", ma cellule qui contenait "12 juillet" sera changée en "0000-00-00". Si je lui donne le type "VARCHAR", ça s'affiche bien, par contre, lorsque je mets les dates en ordre alphabétique, il mets les dates en ordre croissant de chiffre (ex: 01 août, 01 juillet, 02 août, 02 juillet, etc.), il ne reconnait pas les mois.

J'aimerais que les dates que j'importe dans MySQL s'affichent comme je le veux (ex: 12 juillet, 01 août, etc.) et que MySQL reconnaisse l'ordre chronologique des mois. Est-ce possible? Je vais m'arranger dans mes requêtes php pour que les dates suivent avec les années contenues dans un autre champ.

Merci!


A voir également:

1 réponse

Bonjour

Je ne crois pas qu'il y ait de moyen simple de passer d'une date textuelle en français à un format date de mysql.
Mais il est facile d'écrire un petit script pour que tout le monde se comprenne. Soit en VBA du côté de l'origine des données, soit en PHP du côté de leur lecture
J'aimerais que les dates que j'importe dans MySQL s'affichent comme je le veux (ex: 12 juillet...
Le stockage et l'affichage sont deux choses différentes, tu peux toujours t'arranger pour afficher dans le format qui te convient. Tu auras forcément du php (ou autre...) pour récupérer tes données avant des les afficher. Si tu as bien stocké ta date avec l'un des types date, la mise en forme te coûtera au grand maximum deux lignes de code.
[edit] : point important : l'utilisation d'un vrai type date (et non pas d'une cuisine avec des chaînes) est le seul moyen d'avoir des tris corrects
0