PHP date() of MySQL DATETIME
Hoi,
Ik ben bezig met een nieuw database-design en vroeg me af of een tijd opslaan in de db en achteraf omzetten in YYYY-mm-dd het snelste is als ik de unix-time verwerk met PHP of als ik een MySQL-timestamp in de db zet en daaruithaal? Of is het gewoon eigen voorkeur?
Ik ben bezig met een nieuw database-design en vroeg me af of een tijd opslaan in de db en achteraf omzetten in YYYY-mm-dd het snelste is als ik de unix-time verwerk met PHP of als ik een MySQL-timestamp in de db zet en daaruithaal? Of is het gewoon eigen voorkeur?
Gebruik geen timestamp, niet in php en niet in mysql. Een datum of tijdstip sla je op als DATE of DATETIME in de database en pas bij het uitlezen maak je deze op.
Zie ook mijn tutorial over de datum- en tijdfuncties in mysql.
Zie ook mijn tutorial over de datum- en tijdfuncties in mysql.
Ok, begrepen.
Maar wat is nu het beste: omzetten in PHP of in de query?
Maar wat is nu het beste: omzetten in PHP of in de query?
omzetten in de query:) is vele malen sneller dan het laten doen door php, zoek even in de documentatie voor de juiste funties, er is geloof ik ook een tutorial over hier...
Nee, gebruik het juiste datatype! Een datum sla je op in een DATE veld, een tijd in een TIME veld en een datum-tijd combinatie in een DATETIME veld.
Lees nu eerst eens de tutorial waarvan ik de link al gaf, volgens mij heb je dat nog niet gedaan. Alles zal je een stuk duidelijker worden.
Lees nu eerst eens de tutorial waarvan ik de link al gaf, volgens mij heb je dat nog niet gedaan. Alles zal je een stuk duidelijker worden.
Heb ik wel gelezen, ma een tut is een mening van iemand, terwijl er op andere plaatsen rechtstreeks t tegenovergestelde staat. Maar k ga het doen zoals het daar staat.
Bedankt
Bedankt
Dan ben ik wel benieuwd waar je het tegenovergestelde tegenkomt. Dat zou dus betekenen dat je daar aangeraden wordt om niet het juiste datatype voor je gegevens te gebruiken?
Geloof me, dat is wel het minst slimme dat je kunt doen. En natuurlijk kun je blijven werken met timestamps, maar waarom moeilijk doen als het makkelijk kan?
Geloof me, dat is wel het minst slimme dat je kunt doen. En natuurlijk kun je blijven werken met timestamps, maar waarom moeilijk doen als het makkelijk kan?
Nee, ik heb het dan over de php date() te gebruiken ;-)
Oh oke, maar goed dat zou ik je ook afraden. De datum- en tijdfuncties van mysql zijn namelijk veel uitgebreider dan de mogelijkheden die je in php hebt.
Een aantal voordelen heb ik ook aangegeven in die tutorial. Verder is de date() functie niets meer dan een functie om een bepaald tijdstip in een bepaald formaat te zetten. Voor het rekenen met data en tijd gebruik je altijd nog timestamps en helaas zit daar in php een minimale en maximale waarde aan.
Een aantal voordelen heb ik ook aangegeven in die tutorial. Verder is de date() functie niets meer dan een functie om een bepaald tijdstip in een bepaald formaat te zetten. Voor het rekenen met data en tijd gebruik je altijd nog timestamps en helaas zit daar in php een minimale en maximale waarde aan.
Die zit er ook aan in MyQL, alleen zijn daar de marges "iets" ruimer ;-)
Een DATE veld mag van '1000-01-01' tot '9999-12-31' lopen, terwijl een timestamp van 1 januari 1970 tot ergens in 2032 loopt.
Een DATE veld mag van '1000-01-01' tot '9999-12-31' lopen, terwijl een timestamp van 1 januari 1970 tot ergens in 2032 loopt.




