bezorg de laatste berichten direct op de desktop
Welkom, Gast
Alstublieft Inloggen of Registreren.    Wachtwoord verloren?

Datetime in SQL
(1 bezoeker) (1) Gast
Ga naar onderkantPagina: 123
TOPIC: Datetime in SQL
#2890
Datetime in SQL 5 Jaren, 11 Maanden geleden Karma: 0
Al geruime tijd maak ik kleine database-applicaties met PHP - MySQL. Als ik een datum wil opslaan maak ik een variabele aan

[php]<?php
$datum = date("Y-m-d / H:i");
?>[/php]

en dat sla ik op met gegevenstype varchar() in SQL.

Nu heb ik al door dat dit eigenlijk niet de methode is en ik heb na wat googlen gelezen dat je je database het gegevenstype "datetime" moet geven.

[php]<?php
$query = "INSERT INTO users (reg_datum) VALUES(NOW())";
?>
[/php]

Als ik dan een tijd ingeef, krijg ik het in hetzelfde formaat dan met mijn variabele $datum, maar als ik dan een ander formaat wil weergeven hoe moet ik dat dan doen? Ik wil bijvoorbeeld enkel het uur en de minuten weergeven.
Alvast bedankt!
anonymous
Nieuwe Gebruiker
Berichten: 0
graphgraph
Gebruiker offline Klik hier om het gebruikersprofiel van deze gebruiker te zien
De Administrator heeft publieke schrijf toegang geblokkeerd.
 
#2891
5 Jaren, 11 Maanden geleden Karma: 0
Maak je kolom niet varchar maar een int.
Deze vul je ( sql insert ) met de functie time
[php]<?php
$datum = time();
?>
[/php]

Nu komen er allemaal cijfers in je records, op het moment van uitlezen kun jij met de functie date de tijd formateren in gewenste format.
[php]$result = mysql_query(select ...);
etc
etc
while.... {
echo date('Y-m-d / H:i', $row['datum']);
}[/php]
_arno_
WMS Fan
Berichten: 16
graphgraph
Gebruiker offline Klik hier om het gebruikersprofiel van deze gebruiker te zien
De Administrator heeft publieke schrijf toegang geblokkeerd.
 
#2892
5 Jaren, 11 Maanden geleden Karma: 0
Ik leer hier zelf ook nog iets bij, das idd nog handiger!
wimvd
Nieuwe Gebruiker
Berichten: 0
graphgraph
Gebruiker offline Klik hier om het gebruikersprofiel van deze gebruiker te zien
De Administrator heeft publieke schrijf toegang geblokkeerd.
 
#2894
5 Jaren, 11 Maanden geleden Karma: 0
[quote="_arno_":22c5db6w]Maak je kolom niet varchar maar een int.
Deze vul je ( sql insert ) met de functie time
[php]<?php
$datum = time();
?>
[/php]

Nu komen er allemaal cijfers in je records, op het moment van uitlezen kun jij met de functie date de tijd formateren in gewenste format.
[php]$result = mysql_query(select ...);
etc
etc
while.... {
echo date('Y-m-d / H:i', $row['datum']);
}[/php][/quote:22c5db6w]

Dit lijkt idd handig, maar is het ook de "juiste" manier van doen? Mij is altijd vertelt dat je je gegevenstype in de db zo juist mogelijk moet opgeven. Int dus voor gewone nummers (zoals postcodes, id's,...) :?:
anonymous
Nieuwe Gebruiker
Berichten: 0
graphgraph
Gebruiker offline Klik hier om het gebruikersprofiel van deze gebruiker te zien
De Administrator heeft publieke schrijf toegang geblokkeerd.
 
#2897
5 Jaren, 11 Maanden geleden Karma: 0
Volgens mij werkt die manier van Arno het gemakkelijkst.
Met de funtie time() vraag je het aantal seconden sinds de epoch op, en volgens mij moet dat een int zijn.
[url=http://nl2.php.net/manual/nl/function.time.php:23ar67pa]PHP.net:[/url:23ar67pa][quote:23ar67pa]time

(PHP 3, PHP 4 , PHP 5)
time -- Geef de huidige UNIX timestamp
Beschrijving
int time ( void )

Retourneert de huidige tijd gemeten in het aantal seconden sinds de Unix Epoch (January 1 1970 00:00:00 GMT).

Zie ook date(). [/quote:23ar67pa]Daar staat ook weer int...

Als je dat uit de database haalt, kan je de datum in elk mogelijk formaat laten zien. Als je eerst de tijd en datum op slaat als "Y-m-d / H:i", en het ook zo op je site laat zien, en je wil het een keer in een ander formaat, dan wordt dat toch wel lastiger, aangezien je dan per record moet gaan kijken in welk formaat het staat, en het moet omrekenen...
Rik
Moderator
Berichten: 28
graphgraph
Gebruiker offline Klik hier om het gebruikersprofiel van deze gebruiker te zien
De Administrator heeft publieke schrijf toegang geblokkeerd.
 
#2899
5 Jaren, 11 Maanden geleden Karma: 0
postcodes zijn geen int , als het goed is zitten er ook letters in

time() geeft idd gewoon een integer terug, dus alleen maar cijfers.
Het is dus logisch als je dit ook in je database doet.
_arno_
WMS Fan
Berichten: 16
graphgraph
Gebruiker offline Klik hier om het gebruikersprofiel van deze gebruiker te zien
De Administrator heeft publieke schrijf toegang geblokkeerd.
 
Ga naar bovenkantPagina: 123
Moderators: Rik, Roy