Sto facendo la mia prima importazione CSV in MySQL e ho notato che la data nel CSV ha il formato 31-Jan-2011
. Come posso convertirlo in 2011-01-31
così posso inserirlo nel tipo di dati DATE? La prima cosa che mi è venuta in mente è lasciare che PHP faccia la conversione e poi inserirla in un secondo tavolo, ma suppongo che sia ... non giusto.Importazione di un CSV in MySQL con un diverso formato di data
risposta
È possibile sostituire formato durante l'importazione dei dati dal file CSV, ad esempio -
LOAD DATA INFILE 'file_name.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(id, column2, column3, @date_time_variable) -- read one of the field to variable
SET date_time_column = STR_TO_DATE(@date_time_variable, '%d-%b-%Y'); -- format this date-time variable
Sarà formattare la stringa del tipo '31 -Jan-2011' per un corretto tipo di dati datetime.
Altre informazioni qui - LOAD DATA INFILE Syntax.
Cosa ne pensi di questo problema (http://dba.stackexchange.com/questions/90498/import-csv-file-into-mysql-with-custom-data-change?noredirect=1#comment162435_90498)? Qualche aiuto per favore? Grazie –
mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%Y-%m-%d');
+------------------------------------------------+
| DATE_FORMAT('2009-10-04 22:23:00', '%Y-%m-%d') |
+------------------------------------------------+
| 2009-10-04 |
+------------------------------------------------+
1 row in set (0.00 sec)
Se il file non è troppo grande, caricare il CSV in Excel e utilizzare i comandi di formattazione per modificare la rappresentazione della data.
La tua risposta non è di grande aiuto con la domanda SQL. Inoltre, Excel non è davvero troppo facile da integrare in un processo batch. –
Questo ha funzionato per me, semplicemente cambiato il formato della data in Excel per la colonna in "aaaa-mm-gg", salvato come csv e importato. –
Sembra che qualcuno abbia già risposto a questo indirizzo: http://stackoverflow.com/questions/5616494/how-to-convert-csv-date-format-to-into-mysql-db. Sto pubblicandolo nel caso in cui qualcun altro abbia questa domanda. – enchance