login  Naam:   Wachtwoord: 
Registreer je!
 Nota's op tutorial:

Tutorials > MySQL > Datum en tijd in MySQL [deel 1]
Pagina:

Reacties op de tutorial Datum en tijd in MySQL [deel 1]


Offline  Dark_Paul
Gepost op: 22 september 2006 - 15:49
PHP ver gevorderde

Hej marten,
Goede tut, weer wat geleerd over die DATETIME. Ik deed het eerst altijd met een int van 10 en daar stopte ik een Timestamp in, maar dit werkt dus beter 
Ook die 'handigere' queries kwamen me goed van pas, ik merkte dat ik zelf heel vaak achter de query aan nog een if-statement had om waardes als 1 en 0 om te zetten in Ja en Nee (ik werk zelf vaak met getallen).
Alleen stuitte ik op dit probleempje:
  1. mysql_query("SELECT id, catid, titel CASE WHEN catid=0 THEN 'Scripts' WHEN catid=1 THEN 'Overige' END AS categorie FROM topics ORDER BY id DESC") OR die (mysql_error());

Ik krijg als foutmelding:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE WHEN catid=0 THEN 'Scripts' WHEN catid=1 THEN 'Overige' END AS categorie FR' at line 1
Ik kan 'm alleen niet vinden 

Paul

Offline  marten
Gepost op: 22 september 2006 - 16:13
Beheerder

Achter titel, dus tussen titel en CASE moet nog een komma

Offline  Sc0tTy
Gepost op: 27 september 2006 - 13:58
PHP interesse

ik vind het persoonlijk makkelijker om met een unix time stamp te werken en een integer veld, ik weet niet of je dit ook in je tutorial kan verwerken ? zover ik weet word dit ook meer gebruikt dan de eigen date functie van mysql

Offline  marten
Gepost op: 27 september 2006 - 14:16
Beheerder

Ik probeer dus met deze tutorial aan te geven dat je beter kan werken met de manier in de tutorial dan jouw manier Scotty 

Offline  Thomas
Gepost op: 07 juli 2014 - 12:17
Moderator

DATE(TIME) is zich niet bewust van tijdszones. Alle DATE(TIME)s die je opslaat hangen af van de op de MySQL-server ingestelde (systeem-)tijdszone. Stel nu dat je database verhuist naar een webserver op een andere geografische locatie in een andere tijdszone. Potentieel probleem? Timestamps hebben het voordeel dat deze altijd hetzelfde uitgangspunt hebben voor de tijdszone (UTC).

Timestamps hebben (ook in PHP) voorzieningen om gemakkelijk conversies vanuit UTC naar de ingestelde tijdszone (en andersom) uit te voeren wat het omrekenen van een (relatief) tijdstip in tijdszone A naar een (relatief) tijdstip in tijdszone B gemakkelijk maakt. DATE(TIME)s hebben deze voorziening volgens mij niet. Van MySQL.com:
Citaat:
The current time zone setting does not affect values displayed by functions such as UTC_TIMESTAMP() or values in DATE, TIME, or DATETIME columns. Nor are values in those data types stored in UTC; the time zone applies for them only when converting from TIMESTAMP values. If you want locale-specific arithmetic for DATE, TIME, or DATETIME values, convert them to UTC, perform the arithmetic, and then convert back.

Als je de tijdszone (van je database-sessie, of de globale tijdszone instelling) altijd expliciet instelt dan heb je in ieder geval een vast uitgangspunt, maar het is dus niet zo dat DATE(TIME)s per definitie beter zijn dan timestamps, of andersom.

Daarnaast weet ik niet of het verstandig is om data (datums) geformateerd op te halen. Vaak is het handig om het moment dat je besluit hoe je iets wilt weergeven zolang mogelijk uit te stellen, het liefste doe je dit pas net voor het afdrukken. Stel bijvoorbeeld dat de huisstijl van je website verandert en hiertoe behoort ook een andere datum-saus. Je moet er toch niet aan denken dat je hiervoor queries moet gaan herschrijven? Dan was wellicht één (custom) PHP-functie of -methode die de opmaak van de datum regelt (en uit kan gaan van een DATE(TIME) of timestamp) misschien toch handiger geweest?

Pagina:

Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.024s