Wissensdatenbank : MySQL
CSV importieren - Datum und Beträge umwandeln
Geschrieben von Jan Setzer am 03.04.2017 10:36

Beim Importieren von CSV-Dateien, die Datumswerte und Beträge in deutscher Schreibweise enthalten, ist eine Umwandlung in die amerikanische Schreibweise erforderlich.

Beispiel aus CSV-Datei

Datum

03.04.2017 muss umgewandelt werden in 2017-04-03

Dies wird wir folgt realisiert:

date_format(str_to_date(@BuchungstagD, '%d.%m.%Y'), '%Y-%m-%d')

Beträge

6.420,23 € muss umgewandelt werden in 6420.23

Hierbei müssen mehrere Schritte erfolgen:

  1. Ersetzen von " €"
  2. Ersetzen des deutschen Tausendertrennzeichens "."
  3. Ersetzen des deutschen Dezimaltrennzeichens "," durch das amerikanische "."

SQL-Befehl

LOAD DATA INFILE 'C:/PFAD/DATEINAME.csv'
INTO TABLE NAME_DER_TABELLE
FIELDS TERMINATED BY ';'
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(@BuchungstagD,@WertstellungD,Umsatzart,Buchungsdetails,Auftraggeber,Empfänger,@BetragF,@SaldoF)
SET
Buchungstag = date_format(str_to_date(@BuchungstagD, '%d.%m.%Y'), '%Y-%m-%d'),
Wertstellung = date_format(str_to_date(@WertstellungD, '%d.%m.%Y'), '%Y-%m-%d'),
Betrag = replace(replace(replace(@BetragF, ' €', ''), '.', ''),',','.'),
Saldo = replace(replace(replace(@SaldoF, ' €', ''), '.', ''),',','.')

;