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.
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
Ik snap er geen ene mallemoer meer van. Kan iemand me helpen? Is mijn MySQL-configuratie helemaal bagger ofzo?
Alvast bedankt voor een reactie.