Datum en tijd/timestamp in db

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- -

- -

22/07/2006 13:22:00
Quote Anchor link
Hallo,

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
 
PHP hulp

PHP hulp

17/11/2024 13:41:19
 
Bo az

Bo az

22/07/2006 13:27:00
Quote Anchor link
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.
 
PHP erik

PHP erik

22/07/2006 13:27:00
Quote Anchor link
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
 
PHP erik

PHP erik

22/07/2006 13:29:00
Quote Anchor link
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.


DATETIME is van MySQL...

Dit is een betere link ;)
http://www.postgresql.org/docs/7.4/interactive/datatype.html
 
- -

- -

22/07/2006 13:34:00
Quote Anchor link
@Boaz, PHPerik:
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 - -
 
Bo az

Bo az

22/07/2006 13:38:00
Quote Anchor link
DATE_FORMAT(datum,'%d/%m/%Y') AS naam

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
 
- -

- -

22/07/2006 13:39:00
Quote Anchor link
@Boaz:
Ik ben 12, en kan weinig (lees: geen) engels. Dus zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT DATE_FORMAT(datum,'%d/%m/&Y'), kolom2, kolom3 FROM tabelnaam WHERE tabelnaam = 'vergelijking' ORDER BY datum

???
 
Bo az

Bo az

22/07/2006 13:42:00
Quote Anchor link
Ja, die laatste & moet een % zijn, had ik ook fout gedaan.

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/
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
Martijn B

Martijn B

22/07/2006 13:46:00
Quote Anchor link
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


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
 
- -

- -

22/07/2006 13:49:00
Quote Anchor link
En hoe kan ik in een DATETIME met een INSERT of UPDATE de 'nu' toevoegen???
Zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
INSERT INTO tabelnaam VALUES ('voornaam', 'achternaam', NOW())
???
 
Joren de Wit

Joren de Wit

22/07/2006 13:59:00
Quote Anchor link
Dat is de makkelijkste manier ja...
 
PHP erik

PHP erik

22/07/2006 13:59:00
Quote Anchor link
Jonathan:
En hoe kan ik in een DATETIME met een INSERT of UPDATE de 'nu' toevoegen???
Zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
INSERT INTO tabelnaam VALUES ('voornaam', 'achternaam', NOW())
???


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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.