Import CSV, deutsches Datum / Zeit nach MySQL

Status
Für weitere Antworten geschlossen.
J

Jeims

Guest
Hallo,
ich habe gerade erst angefangen mich mit MySQL zu beschäftigen, meine Fragen können also durchaus etwas dumm sein :(. Trotzdem hoffe ich auf "Anschub" bei meinem Problem. Ich habe mich per per Google schrittweise weitergehangelt, nun hänge ich aber fest.

Mein Ziel ist, Tab separated CSV Files automatisch eine MySQL DB schreiben.
Die ca. 15.000 Datensätze kommen täglich von einem Zählgerät auf mein NAS, evtl. kann ich das Speichern auch auf meinen Debian Server umbiegen falls es einfacher ist. Am liebsten wäre mir das Verzeichnis regelmässig zu prüfen und wenn neue Dateien da sind, diese dann automatisert zu importieren. Den Import in die MySQL DB dachte ich irgendwie per Cron zu steuern.

Bevor ich das aber angehe muss ich aber erst mal den MySQL Import hinbekommen.
Ich scheitere beim import per php myadmin an dem Deutschen Datum, der Rest scheint OK zu sein.

ImPHP MyAdmin nutze ich die import Funktion, dort habe ich nicht gefunden wie ich das Datumsformat ändern könnte.
Ich bin natürlich für jeden Tip dankbar, wie ich das hinbekomme oder gar einfacher gestalten kann.

Jeims

Das CSV Struktur sieht immer wie folgt aus
upload_2020-12-19_17-39-4.png

Nach dem Import passt das Datum nicht

upload_2020-12-19_17-58-27.png

Die Datenbank habe ich so angelegt (nach bestem Wissen und Gewissen)


upload_2020-12-19_17-59-8.png
 

Anhänge

  • upload_2020-12-19_17-23-9.png
    upload_2020-12-19_17-23-9.png
    70,7 KB · Aufrufe: 1
  • upload_2020-12-19_17-28-5.png
    upload_2020-12-19_17-28-5.png
    6,8 KB · Aufrufe: 1
  • upload_2020-12-19_17-29-59.png
    upload_2020-12-19_17-29-59.png
    9,6 KB · Aufrufe: 1
  • upload_2020-12-19_17-31-34.png
    upload_2020-12-19_17-31-34.png
    9,1 KB · Aufrufe: 1
  • upload_2020-12-19_17-43-19.png
    upload_2020-12-19_17-43-19.png
    8,5 KB · Aufrufe: 1
Werbung:
was heißt 'scheitern'? Fehlermeldung? Jede Spalte ein Index? Really? Warum trennst Du Datum und Zeit, gehört das nicht zusammen?
 
Hallo,

"Scheitern" heisst daß das Datum falsch übernommen wird. Aus dem 16. Dezember 20 wird der 20.12.2016

upload_2020-12-19_18-30-4.png

Das mit den Indexen hab Ich gegoogeld, falls das Quatsch ist wäre es nett wenn ihr mir sagen würdet wie es besser geht (nur den primary lassen?).

Datum und Zeit bekomme ich TAB getrennt in dem CSV, daran kann ich nichts ändern. Wenn sich das beim importieren vielleicht verknüpfen und korrekt wandeln liesse wäre das super

Danke
 
hrm, für mich funktioniert das ohne Probleme:

Code:
test=# create table jeims(d date);
CREATE TABLE
test=*# copy jeims from stdin;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself, or an EOF signal.
>> 16.12.20
>> 17.12.20
>> \.
COPY 2
test=*# select * from jeims ;
     d     
------------
 2020-12-16
 2020-12-17
(2 rows)

Ich hab aber auch kein MySQL. Datum und Zeit: notfalls erst mal in eine Import-Tabelle einlesen und dann via SQL in die Zieltabelle, und dabei passend wandeln. Indexe: nur die setzen, die man braucht. Welche Du brauchst weiß ich nicht, vermutlich aber nicht auf allen Spalten. Was genau hast denn bei Google gefunden, daß Du der Meinung bist, auf allenSpalten einen zu benötigen?
 
Ich mach den Import ja per PHPMyAdmin übers Menü, weiss also nicht welche SQL Befehle da ausgeführt werden. Ich werde mir dann wohl mal den Syntax für den Import erarbeiten. Sonst komm ich mit der zwischengelagerten Import Tabelle ja auch nicht klar.
Mein Problem mit Indexen: Ich weiss ja gar nicht welche ich brauche, die Tabelle soll später als Datenquelle für Google Data Studio dienen über das ich meine Auswertungen mit Drill Downs machen möchte.
Ich hatte nur einen Post zum Anlegen einer DB gelesen und da war für jede Spalte ein Index gesetzt. Halt abgeschrieben ohne genau zu wissen was man tut ;o)
 
Ich hatte nur einen Post zum Anlegen einer DB gelesen und da war für jede Spalte ein Index gesetzt.

erinnert mich an ein Ticket bei uns. Kunde so: Selects gehen schnelle, aber Insert/Updates/Deletes brauchen ewig. Tabelle mit vielleicht 1000 Spalten (schon krank) und jede Spalte mit Index. pg_stat_user_indexes zeigte dann, daß nur 1 Index genutzt wurde, 999 waren für den Eimer.

Egal, viel Spaß mit Deinem MySQL.
 
Hat mich jetz alles nicht so wirklich weitergebracht, was da "so ohne Probleme funktioniert" scheint PostgreSQL zu sein, "..Ich hab aber auch kein MYSQL" pastt dazu. Jedenfalls klappt das mit MySQl nicht.
Ich glaube ich hatte erwähnt dass ich Anfänger bin, und ich bin hier doch im MySQL Forum !? Naja seisdrum...
 
Nun ja, möglicherweise hat MySQL passende Funktionen, um aus einem String, der eine deutsche Zeitangabe enthält, einen passenden Timestamp erstellt. Irgendwas muß MySQL ja auch können ...
 
OK, Leute, bevor ich mich aus diesem Forum verabschiede...Ich habe glaube ich relativ gut dargestellt, dass und wo ganz am Anfang ich stehe.
ICH BIN ANFÄNGER, weder bezeichne ich mich als Entwickler, noch helfen mir Kommentare von "Gurus" die "mein MySQL" lächerlich machen.
Ich brauche auch keine "Tuning Tips" wenn ich noch nicht mal geradeaus fahren kann.

@Admin
bitte lösch meinen Account.
Ich betreibe selbst ein Forum bei dem die Experten den Anfängern wirklich helfen, auf den Umgang hier kann ich gerne verzichten. Dann google ich lieber weiter halbwissend rum und fall noch ein paar mal auf die Nase.
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben