[Excel / Mysql] Excel timestamp omzetten naar UNIX timestamp

Pagina: 1
Acties:
  • 143 views sinds 30-01-2008

  • Dark Wanderer
  • Registratie: September 2003
  • Laatst online: 11-08-2024
Hallo iedereen

Deze vraag gaat over: Het omzetten van een Excel "datum" naar een unix timestamp.

Uitleg:

Ik heb hier een excel bestand met allemaal klant gegevens, en een van de velden is de gebortedatum. Deze is in excel ingevoerd als (dd-mm-jjjj), en bij de celeigenschappen is aangegeven dat het een datumveld is.

Nu heb ik sinds kort iets een applicatie die via het web werkt met mysql. Ik wil nu deze gegevens dus overzetten naar een mysql database. Het plan is om de excel sheet op slaan als een .csv bestand, en deze vervolgens met phpmyadmin te importeren naar de mysql database. Dit werkt allemaal prima, behalve met de geboortedatums omdat deze niet in het UNIX timestamp formaat opgeslagen zijn, zoals mysql ze gebruikt.

Ik heb in excel al geprobeerd om de kolom met geboortedatums te kopieren en dan met plakken speciaal (optie "alleen waarden") in een andere kolom te plakken. Ik krijg dan wel een andere weergave van de datum. Zo wordt 21-2-1919 bijvoorbeeld "3791".

Ik vraag me alleen af hoe ik nu vanuit dit getal uit kan komen op de UNIX timestamp voor de datum 21-2-1919. Ik heb al een beetje op internet zitten zoeken en ik kan de theorie er achter wel vinden, het lukt me alleen niet om dit in de praktijk toe te passen. (excel zou vanaf 1 jan 1900 het aantal dagen rekenen of zo, maar dan zit je weer met schrikkeljaren e.d.). Ik denk dat er vast genoeg mensen op het forum zijn die ook met dit probleem te maken hebben gehad, en ik zou graag weten hoe zij dit hebben opgelost.

Alvast bedankt
Groeten
Marco

hand·te·ke·ning (de ~ (v.))


Verwijderd

Als je de datediff functie gebruikt houdt Excel (of beter, VBA) toch rekening met schrikkeljaren?!

Verwijderd

Gebruik de MySQL functie STR_TO_DATE
MySQL slaat de datum trouwens helemaal niet op als Unix timestamp. Opslaan als een DATE is veel beter als het echt alleen een datum is, en er geen tijd-component bij is.

[ Voor 178% gewijzigd door Verwijderd op 02-11-2006 18:37 ]


  • Dark Wanderer
  • Registratie: September 2003
  • Laatst online: 11-08-2024
Verwijderd schreef op donderdag 02 november 2006 @ 18:35:
Gebruik de MySQL functie STR_TO_DATE
MySQL slaat de datum trouwens helemaal niet op als Unix timestamp. Opslaan als een DATE is veel beter als het echt alleen een datum is, en er geen tijd-component bij is.
Aha bedankt, weer iets geleerd. Dus je kan als je verder niets met de tijd te doen hebt beter als date opslaan dan als timestamp (time() in php)? Wist ik niet :P

Ik ga er wel ff mee klooien

Bedankt!

hand·te·ke·ning (de ~ (v.))


  • Dark Wanderer
  • Registratie: September 2003
  • Laatst online: 11-08-2024
Ik moet de gegevens in mysql als timestamp hebben. Hoe ga ik van de mysql date naar de UNIX timestamp? dus eerst str_to_date, en dan van deze datum naar de unix timestamp? Gewoon time() eromheenzetten?

Het moet een mysql functie zijn, geen php functie.

Groeten Marco

hand·te·ke·ning (de ~ (v.))


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 14:25

Janoz

Moderator Devschuur®

!litemod

Dan zoek je dat op in de mysql manual. Er is een heel hoofstuk dat over date en time functies gaat. Dat hoofdstuk is ook nog eens heel makkelijk te vinden omdat het daadwerkelijk 'date and time functions' heet.

Ietsje meer zelfredzaamheid is toch wel het minste wat we van je kunnen verwachten..

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.