2011-11-17 7 views
11

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

+0

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

risposta

31

È 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.

+0

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 –

0
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) 
0

Se il file non è troppo grande, caricare il CSV in Excel e utilizzare i comandi di formattazione per modificare la rappresentazione della data.

+0

La tua risposta non è di grande aiuto con la domanda SQL. Inoltre, Excel non è davvero troppo facile da integrare in un processo batch. –

+0

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. –

Problemi correlati