Datum, das von csv in mysql importiert wurde, als das Datum

8

Ich habe einige Daten als TXT-Datei gespeichert. Ich speichere die TXT-Datei als CSV, um sie mit meiner SQL-Workbench in eine Datenbank zu importieren.  Was ich mache, ist folgendes:

%Vor%

Aber eine Spalte in meiner Spalte ist ein Datum und wird als

importiert

Wie kann ich es gut importieren? Bearbeiten Hier ist, was mein csv enthält:

%Vor%     
b.i 28.01.2013, 09:39
quelle

2 Antworten

10

Bitte versuchen Sie es mit diesem:

%Vor%

Weitere Informationen finden Sie unter LOAD DATA und STR_TO_DATE

Hinweis: Ich habe den FIELDS TERMINATED BY ',' ENCLOSED BY '"' -Teil gelöscht, weil ich weder , noch " in Ihrer CSV sehe. Aber wenn es für Sie so funktioniert, wie es ist, zögern Sie nicht:)

    
fancyPants 28.01.2013, 10:32
quelle
4

Das Standarddatumsformat ist YYYY-MM-DD :

%Vor%

... daher erkennt MySQL Sachen wie 11/17/2012 nicht als korrektes Datum. Theoretisch sollten Sie in der Lage sein, das Standardformat zu ändern, aber ich bin mir nicht sicher, ob dies im Session-Bereich möglich ist, und ich würde nicht empfehlen, es für den gesamten Server zu ändern. Es ist besser, die Transformation selbst durchzuführen. Der Trick besteht darin, den Wert in eine Variable und nicht in eine Spalte einzufügen.

Zusätzlich gibt es noch zwei weitere Probleme:

  • Ihre CSV-Datei enthält eine Kopfzeile.
  • Ihre Felder sind nicht getrennt durch , .

Wenn Ihre Datei Registerkarten als Trennzeichen verwendet, lautet der vollständige Befehl:

%Vor%

MySQL erlaubt eigentlich nicht, @@date_format auf jeden Fall zu ändern:

%Vor%

Wie das MySQL 5.6-Handbuch erklärt :

  

Diese Variable ist nicht verwendet. Es ist ab MySQL 5.6.7 veraltet und wird   in einer zukünftigen MySQL-Version entfernt werden.

Auch bei Datums- und Zeittypen können wir lesen:

  

MySQL ruft Werte für einen bestimmten Datums- oder Zeittyp in einem Standard ab   Ausgabeformat, aber es versucht, eine Vielzahl von Formaten zu interpretieren   Eingabewerte, die Sie angeben (z. B. wenn Sie einen Wert angeben   einem Datums- oder Zeittyp zugeordnet oder damit verglichen werden). Für eine Beschreibung   der zulässigen Formate für Datums- und Zeittypen, siehe Abschnitt 10.1.3,   "Datums- und Zeitliterale" . Es wird erwartet, dass Sie gültige Werte angeben.   Wenn Sie Werte in anderen Formaten verwenden, können unvorhersehbare Ergebnisse auftreten.

     

Obwohl MySQL versucht, Werte in verschiedenen Formaten zu interpretieren, date   Teile müssen immer in der Reihenfolge Jahr-Monat-Tag angegeben werden (z. B.   '98 -09-04 ') statt im Monat-Tag-Jahr oder Tag-Monat-Jahr   Aufträge, die an anderer Stelle häufig verwendet werden (z. B. '09 -04-98 ', '04 -09-98').

    
Álvaro González 28.01.2013 10:48
quelle

Tags und Links