Ergebnis 1 bis 6 von 6
  1. #1
    Idared
    Themenstarter

    Registriert
    06.2010
    Beiträge
    26

    Datum aus Excel Datei in MySQL Datenbank einlesen

    Liebes Forum,
    seit gestern schlage ich mich mit einem Problem herum und zwar versuche ich Excel-Tabellen mithilfe von phpMyAdmin in eine MySQL Datenbank zu importieren. Grundsätzlich funktioniert der Import der Excel Tabellen im csv Format, lediglich bei der Datumsspalte habe ich Probleme. Ich habe die Spalte in MySQL als date formatiert und wenn ich das richtig sehe erwartet MySQL das Datum in Form von bspw.: YYYY-MM-DD. Wenn ich die Tabelle direkt händisch über MyAdmin befülle gibt es keine Probleme. Soll eine Excel Datei mit dem selben Datumsformat (bspw. 2011-05-25) importiert werden, sagt mir MyAdmin, dass die SQL Syntax an dieser Stelle nicht stimmt (#1064). Ich würde zukünftig gerne ein Makro über meine Excel-Tabelle laufen lassen, welches mir die komplette Liste inklusive Datum so formatiert, dass ich die Excel-Datei ohne Problem über myAdmin einlesen kann. Könnt ihr mir sagen, in welchem Format ich die Datumsspalte in Excel dann formatieren muss? Also welches Excel-Datumsformat ist kompatibel mit meiner SQL-Datenbank. Ich freue mich über jeden Hinweis.
    Lieben Dank,
    Kevin
    P.S.: Ich arbeite mit Excel für MAC 2011

  2. #2
    Hildesheiner Goldrenette
    Registriert
    01.2010
    Beiträge
    679
    Erstell mal eine neue Datumsspalte und fülle sie mit der Formel =(DATUM-25569)*86400, wobei DATUM ein Verweis auf die alte Spalte ist. Also steht das eigentliche Datum in Spalte A2 müsstest Du =(A2-25569)*86400 schreiben. Du kannst das dann kopieren und für alle Zeilen einfügen, Excel passt dann automatisch die Feldnamen an. Wenn alles gut läuft müsstest Du dann eine Spalte mit Unix-Timestamps haben mit welchen Du in eine DATE Spalte in Deiner MySQL Tabelle füllen kannst. Die Alte Datumsspalte mit den „Excel-Datumswerten“ natürlich nicht mit exportieren/importieren.

  3. #3
    Idared
    Themenstarter

    Registriert
    06.2010
    Beiträge
    26
    Danke für die Antwort. Werde ich dann später mal testen und dir berichten, was passiert ist.
    Nochmals besten Dank,
    Kevin

  4. #4
    drp
    drp ist offline
    Ontario Avatar von drp
    Registriert
    04.2011
    Beiträge
    342
    Das wäre ja ziemlich praktisch wenn das funktionieren würde.
    Viele Grüße von DRP - Homepage
     MacBook Air 11,6" |  iPhone 3GS 8GB |  iPad 2 16GB weiß Wi-Fi |  Magic Mouse | PC

  5. #5
    Idared
    Themenstarter

    Registriert
    06.2010
    Beiträge
    26
    So, habe das jetzt gerade mal getestet und so lässt sich tatsächlich recht simpel ein timestamp (UTC/GMT) erzeugen. Danke für den Tip. Leider bin ich dann gleich auf die nächste Hürde in meiner Datenbank gestoßen. Wie muss ich die Datumsspalte jetzt in MyAdmin formatieren? Ich habe das naheliegende gemacht und als Typ "timestamp" definiert. Sobald ich das mache setzt er automatisch das Attribut und die Variable Extra auf "on update CURRENT_TIMESTAMP" und unter Standard schreibt er "CURRENT_TIMESTAMP". Meine sämtlichen Versuche die einzelnen Variablen zu ändern sind leider gescheitert. Sobald ich einen in excel erzeugten Timestamp in das Datumsfeld eintrage erscheint er in der Tabelle als "0000-00-00 00:00:00". Wie muss das Datumsfeld denn richtig formatiert werden, damit MySQL den Timestamp auch als solchen interpretiert? Lieben Dank.

  6. #6
    London Pepping Avatar von Guy.brush
    Registriert
    12.2008
    Ort
    X
    Beiträge
    2.051
    Hi!

    "YYYY-MM-DD hh:mm:ss" sollte schon funktionieren. Du musst nur aufpassen, dass du nichts vertauscht hast, denn sobald ein unsinniger Wert drin steht, wird der Timestamp auf 00... gesetzt. Z.B. wenn du den Monat > 11 setzt, den Tag > 31, Stunde > 23, Minute oder Sekunde > 59.

    Übrigens kann ich dir bei sowas Perl mit DBI sehr empfehlen. Das wäre quasi das "Makro", das du haben willst. Damit kann man seinen Input sehr effizient überprüfen, notfalls anders formatieren und in die DB importieren.
    It's more fun to be a pirate than to join the navy.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •