Toon posts:

[MySQL] Nederlandse datum weergave

Pagina: 1
Acties:
  • 179 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik moet een interbase database omzetten naar een MySQL database. Het probleem echter is dat alle datums in de interbase de nederlandse notering hebben (dd/mm/jjjj). Hoe krijg ik deze datums makkelijk in een MySQL database? Dus zonder mbv php alle datums om te zetten naar engelse (jjjj-mm-dd)??

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Daar zul je stringfuncties voor nodig hebben vrees ik... Sterkte

Localhost, sweet localhost


Verwijderd

Topicstarter
Damn, dat verwachte ik eigenlijk al een beetje omdat ik niets kon vinden. Wordt een leuk karweitje dan :(

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 22-08 10:27

Kaastosti

Vrolijkheid alom!

Ik kwam zelf ook met dat probleem... ik heb toen deze functie geschreven om makkelijk te kunnen converteren van 'sql'-data naar nl-data. Werkt twee kanten op, aangezien mm steeds in het midden blijft :)
PHP:
1
2
3
4
5
function convert($date){
    $array = split('-', $date);
    $date = $array[2]."-".$array[1]."-".$array[0];
    return $date;
}


...sorry dat ik je het leuke puzzelwerk nou ontneem :)
---
Whoops sorry, startpost niet helemaal goed gelezen :(

[ Voor 28% gewijzigd door Kaastosti op 01-03-2003 11:30 ]

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Kaastosti schreef op 01 March 2003 @ 11:25:
Ik kwam zelf ook met dat probleem... ik heb toen deze functie geschreven om makkelijk te kunnen converteren van 'sql'-data naar nl-data. Werkt twee kanten op, aangezien mm steeds in het midden blijft :)

...sorry dat ik je het leuke puzzelwerk nou ontneem :)
Je bent vergeten de startpost te lezen... Het moest buiten PHP om...

Is het trouwens niet een optie om via unixtimestamps te werken?

[ Voor 16% gewijzigd door kvdveer op 01-03-2003 11:29 . Reden: quote ingekort ]

Localhost, sweet localhost


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

MySQL snapt geen locale-support enzo, dus nee dat kan niet.
Versie 4 kan het geloof ik wel, of 4.1 ofzo.

Kan je de interbase database het niet geschikt laten exporteren?
Bijvoorbeeld door eerst de datum/taal instellingen van interbase/je OS aan te passen?

  • Ozzi
  • Registratie: Mei 2000
  • Laatst online: 07:46

Ozzi

??

ik dacht dat mysql daar ook een functie voor had, er staat dacht ik iets over bij de comment dan de PHP date() functie http://www.php.net/manual/en/function.date.php

geen


Verwijderd

Topicstarter
Weet ik dus niet, ik wij krijgen een sql file aangeleverd met daarin de data die dan overgepompt moet worden. Kan het wel eens na gaan vragen, maar denk dat dat weinig oplevert.
kvdveer ik wil eigenlijk graag met timestamps werken, maar hoe krijg ik een datum in een sql file omzetten?? Dat moet dan toch ook met php

  • BlaTieBla
  • Registratie: November 2000
  • Laatst online: 09:24

BlaTieBla

Vloeken En Raak Schieten

Exporteer de Interbase naar een formaat wat eenvoudig te editten is (bijvoorbeeld Excell of een ander pakket) verander daar de datum notatie en dan vervolgens importeren in MySQL.
MAAR.... als we het hier over duizenden entries hebben..... trekt excell waarschijnlijk niet (MS kennende)

[ Voor 24% gewijzigd door BlaTieBla op 01-03-2003 11:37 ]

leica - zeiss - fuji - apple | PSN = Sh4m1n0


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Als je sql-file niet te groot is kan je het met een regexp-ondersteunende editor openen.

En dan is het een kwestie van s/([0-9]{2})\/([0-9]{2})\/([0-9]{4})/\3-\2-\1/g ;)

Verwijderd

Topicstarter
BlaTieBla schreef op 01 March 2003 @ 11:36:
Exporteer de Interbase naar een formaat wat eenvoudig te editten is (bijvoorbeeld Excell of een ander pakket) verander daar de datum notatie en dan vervolgens importeren in MySQL.
MAAR.... als we het hier over duizenden entries hebben..... trekt excell waarschijnlijk niet (MS kennende)
sql-file is ruim 16 MB groot, aantal records is meer dan 92.000. Vandaar dat ik het ook liever niet met php doe, maar gewoon met mysql.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 01 maart 2003 @ 11:39:
sql-file is ruim 16 MB groot, aantal records is meer dan 92.000. Vandaar dat ik het ook liever niet met php doe, maar gewoon met mysql.

Te groot voor excell misschien, maar niet onwerkbaar groot voor een editor als vi :)

En je kan het ook vast wel met een update-statement in mysql oplossen, iets met substrings knoeien:
update tabeletje set date_field = concat(substring(jaar), '-', ....);

Moet je wel even een lege date kolom toevoegen en later de foute weghalen.

[ Voor 8% gewijzigd door ACM op 01-03-2003 11:42 ]


Verwijderd

Topicstarter
ACM schreef op 01 maart 2003 @ 11:42:

[...]

Te groot voor excell misschien, maar niet onwerkbaar groot voor een editor als vi :)

En je kan het ook vast wel met een update-statement in mysql oplossen, iets met substrings knoeien:
update tabeletje set date_field = concat(substring(jaar), '-', ....);

Moet je wel even een lege date kolom toevoegen en later de foute weghalen.
Een editor is btw ook geen optie, want alles moet elke nacht automatisch gebeuren. Denk dat ik het dan toch maar via php ga doen, alleen maak ik dan wel gelijk een timestamp van die datums. Werkt veel makkelijker vind ik.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 01 maart 2003 @ 11:44:
Een editor is btw ook geen optie, want alles moet elke nacht automatisch gebeuren. Denk dat ik het dan toch maar via php ga doen, alleen maak ik dan wel gelijk een timestamp van die datums. Werkt veel makkelijker vind ik.

Die update statement ook bekeken? :)

Dan kan je het in mysql doen, evt zelfs direct een timestamp van maken door er nog unix_timestamp() omheen te plakken.

Verwijderd

Topicstarter
ACM schreef op 01 March 2003 @ 11:50:

[...]

Die update statement ook bekeken? :)

Dan kan je het in mysql doen, evt zelfs direct een timestamp van maken door er nog unix_timestamp() omheen te plakken.
Jeps, heb ik bekeken, ik denk dat ik die waarschijnlijk wel ga toepassen, maar dat is ook mbv php dan he :P

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 01 maart 2003 @ 11:51:
Jeps, heb ik bekeken, ik denk dat ik die waarschijnlijk wel ga toepassen, maar dat is ook mbv php dan he :P

Hoezo :?

Je kan die toch als los statement in een sql-file plaatsen en dan met de mysql-cmd-line uit laten voeren? Komt geen php aan te pas hoor.

Verwijderd

Topicstarter
ACM schreef op 01 maart 2003 @ 11:55:

[...]

Hoezo :?

Je kan die toch als los statement in een sql-file plaatsen en dan met de mysql-cmd-line uit laten voeren? Komt geen php aan te pas hoor.
uuuuhm.......... wist ik wel, had ik alleen niet aan gedacht :+

Verwijderd

Heeft Interbase niet een functie zoals MySQL `DATE_FORMAT' heeft? Op die manier kan je misschien alles op de juiste manier naar een file exporten, en weer importen in MySQL ?

Verwijderd

Je hebt toevalig geen ervaring met delphi/cbuilder?

want dan kun je gewoon een progje schrijven dat die interbase database inleest en met een mysql component wegschrijft naar mysql.

een goed component voor zowel cbuilder als delphi is: http://www.microolap.com/products/dac/mysqldac.htm

en dan kan je met behulp van DateFormat string functie kun je de datum naar die van mysql omzetten
suc6

[ Voor 16% gewijzigd door Verwijderd op 01-03-2003 16:29 ]

Pagina: 1