Datum en tijd/timestamp in db
Ik wil een datum en tijd of ene timestamp in mn db zetten, op dit moment gebruik ik gewoon iin INT(11) met daarin een timestamp, waarmee ik de cijfers om kan zetten naar een datum die door hte menselijk oog gelezen kan worden.
Maar ik weet dat ik het ook kan doen met DATE, TIME of zelfs DATETIME.
Nu wil ik graag weten waarom DATE, TIME of DATETIME beter is dan een INT(11), want ik weetb dus wel dat het beter is, en hoe ik van een DATETIME een ander formaat kan maken, bijvoorbeeld met een functie als date().
Greatzz,
Jonathan
deze functies rekenen met datums, dat kan (volgens mij) met een INT() niet.
Verder zal een functie als ORDER BY ook beter werken als een veld van het juiste type is.
Als je een DATETIME veld gebruikt kan je met al Verder zal een functie als ORDER BY ook beter werken als een veld van het juiste type is.
Verder kun je de SQL functies gebruiken als DATE_FORMAT zodat je geen tussenkomst van PHP nodig hebt, wat sneller, efficiënter en makkelijker is.
Bedenk dat INT11 niet 11 karakters heeft maar 11 bytes, en dat zijn getallen ter grootte van 256^11
Boaz:
Als je een DATETIME veld gebruikt kan je met al deze functies rekenen met datums, dat kan (volgens mij) met een INT() niet.
Verder zal een functie als ORDER BY ook beter werken als een veld van het juiste type is.
Verder zal een functie als ORDER BY ook beter werken als een veld van het juiste type is.
DATETIME is van MySQL...
Dit is een betere link ;)
http://www.postgresql.org/docs/7.4/interactive/datatype.html
Bedankt.
@Boaz:
Kan je mij laten zien hoe ik dan alle velden uit mijn tabel haal, de kolom met de DATETIME heet datum, en hoe kan ik dan een 'virtuele' kolom erbij maken met een datum als 22/7/06 13:30???
Snap je???
Edit:
DIT IS MIJN 250e POST!!!
Gewijzigd op 01/01/1970 01:00:00 door - -
Dat soort dingen staan dus allemaal in die link die ik gaf... kan je dus ook zelf even opzoeken.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
Ik ben 12, en kan weinig (lees: geen) engels. Dus zo:
Code (php)
1
SELECT DATE_FORMAT(datum,'%d/%m/&Y'), kolom2, kolom3 FROM tabelnaam WHERE tabelnaam = 'vergelijking' ORDER BY datum
???
En je kan de kolom eventueel een andere naam geven door er achter te zetten:
AS naam
dan is de kolom dus onder naam beschikbaar.
Edit:
Er is ook wel wat nederlandstalige info beschikbaar, zo heeft Jan er ook al eens een tut over gemaakt:
http://www.phphulp.nl/php/tutorials/3/300/589/
http://www.phphulp.nl/php/tutorials/3/300/589/
Gewijzigd op 01/01/1970 01:00:00 door Bo az
PHPerik:
De datatypes die gemaakt zijn voor deze opslag hebben ten eerste het minst bytes nodig (INT11 is 11 bytes en dat is nogal heel erg veel, waarom niet gewoon INT4?).
Verder kun je de SQL functies gebruiken als DATE_FORMAT zodat je geen tussenkomst van PHP nodig hebt, wat sneller, efficiënter en makkelijker is.
Bedenk dat INT11 niet 11 karakters heeft maar 11 bytes, en dat zijn getallen ter grootte van 256^11
Verder kun je de SQL functies gebruiken als DATE_FORMAT zodat je geen tussenkomst van PHP nodig hebt, wat sneller, efficiënter en makkelijker is.
Bedenk dat INT11 niet 11 karakters heeft maar 11 bytes, en dat zijn getallen ter grootte van 256^11
Die 11 heeft niets temaken met de de maximale grote van het getal. INT gebruikt altijd 4 bytes.
http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
DATETIME gebruikt 8 bytes.
http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html
edit:
Dit is trouwens allemaal MySQL 5
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
Dat is de makkelijkste manier ja...
Jonathan:
Ja.
Let er op dat je bij de SELECT misschien een alias wil aanmaken, dus:
SELECT DATE_FORMAT(iets, '%d-%m-%Y') as Jouw_naam FROM blah
zodat je Jouw_naam kunt gebruiken na mysql_fetch_whatever