Toon posts:

MySQL Load Data Infile Datetime probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal,

Ik heb weer eens wat vreemds. Het zit zo:
Ik wil via een ODBC-koppeling een textfile inlezen in MySQL met behulp van LOAD DATA INFILE. Er staat een tabel klaar met datetime velden en het tekstbestand is opgebouwd door middel van TABS (velden van elkaar scheiden), <CR>,<LF> (nieuwe regel), bevat geen quotes en dit geef ik ook aan in mijn SQL-statement. De tekstvelden worden netjes in de aangegeven kolommen gezet, maar bij de datums gaat het helemaal verkeerd.
Alles staat wel in de goede datumnotatie (datetime is YYYY-MM-DD HH:MM:SS) en in de textfile staat bijvoorbeeld 2003-04-20 00:00:00. Na het importeren geeft de tabel simpelweg het volgende: 0000-00-00 00:00:00. Dit wil ik uiteraard niet hebben.
Ik heb al verschillende forums bekeken op Internet en de MySQL handleiding bekeken, maar daar schiet ik niet mee op. Op forums wordt het volgende gezegd: Zet de datum in een andere notatie of laat een scriptje dit doen. Allemaal leuk en aardig, maar alles staat al in de goede notatie. De MySQL manual geeft ook aan dat ik deze notatie moet gebruiken en zegt dat als een datuminvoer niet voldoet aan een goede notatie (en als ie er dus niets van kan bakken), dat dan 0000-00-00 00:00:00 weer wordt gegeven. Hier word ik dus niet wijzer van, want alles wordt goed aangeleverd, maar MySQL begrijpt het blijkbaar niet.
Ik dacht eerst dat dit misschien aan de ODBC koppeling lag, daarom heb ik het via PHPMyAdmin nog eens geprobeerd: Hetzelfde resultaat.
Toen dacht ik, laat ik eens kijken hoe MySQL het dan wil hebben. Ik exporteerde de tabel (via PHPMyAdmin) naar een .csv file, dus ik kreeg een paar van die 0000-00-00 00:00:00 blokken. Ik veranderde zo'n blok in 2003-04-20 00:00:00 en ik bewaarde het bestand. Daarna importeerde ik het weer met LOAD DATA INFILE (via PHPMyAdmin en ik kreeg weer alleen maar nulletjes te zien :? . Alle instellingen voor LOAD DATA INFILE waren goed, want de gewone teksten werden wel goed geimporteerd.

Ik snap er geen ene mallemoer meer van. Kan iemand me helpen? Is mijn MySQL-configuratie helemaal bagger ofzo?

Alvast bedankt voor een reactie. }:O

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Vreemd probleem, want ik heb namelijk zelf ook via LOAD DATA INFILE datums geimporteerd in MySQL via een CSV File:

code:
1
2
3
NieuwsID,NieuwsDatum,NieuwsTitel
1,2002-11-15,Archiveren met HP LaserJet printers
2,2002-12-15,Titel2


Ik gebruik dus ook de datum notatie met het enige verschil dat ik een DATE veld ipv een DATETIME veld gebruik.

Post anders je tabel en csv structuur eens.

It’s nice to be important but it’s more important to be nice


Verwijderd

Topicstarter
Zo GOEDEMIDDAG ZEG! 8)7

Bedankt JunkieXL voor je reply. Er was dus een heel ander probleem aan de hand, maar ik heb wel gelijk weer wat zitten klooien. Ik heb het voorbeeldje van jouw tabel even in mijn MySQL database aangemaakt en toen lukte inderdaad alles wel. Toen heb ik zitten klooien met .csv exporteren, importeren, bestanden hernoemen naar .txt, dan weer proberen enzovoorts. Bij alle exports van jouw voorbeeldtabel ging alles goed en bij mijn eigen gegevens dus niet.
Toen begon me wat te dagen, ik was een textfile aan het opslaan en zag dat de codering telkens standaard ingesteld staat op ANSI. Alles ging daarmee goed en ik begon te twijfelen of ik de codering dan anders ingesteld had. En jawel....de codering van mijn files stond dus op UNICODE. Ik zet het vervolgens om en voila, alles verliep lekker. Ik had er geen idee van dat ik dit ergens verkeerd had aangegeven, maaar in ieder geval ben ik er nu dus uit.

In ieder geval bedankt _/-\o_