[Code] Tagesdatum in MySQL speichernSie befinden sich: Home > Webmaster News
Quelltext: PHP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Ganz einfach: Speichern von Datum und Uhrzeit
Keine nicht-triviale Anwendung kann auf das Speichern eines Datums verzichten. Bei einer Kundendatei möchte man vielleicht das Datum der ersten Erfassung wissen, bei Gästebucheinträgen zusätzlich auch die Uhrzeit.
Wenn wir ein Datum in der Form tt.mm.jjjj speichern, so ergeben sich zwei Probleme. Zum einen können wir unsere Daten nicht nach den vorhandenen Daten sortieren lassen, zum anderen können in diesem Format keine Daten miteinander vergleichen um zu berechnen, welches von zwei Daten kleiner(früher) und welches größer (später) ist.
Beispiel:
<?php
$datum1 = "16.04.1997";
$datum2 = "11.03.1998";
if($datum1 > $datum2) echo "Datum1 liegt später als Datum2";
if($datum1 < $datum2) echo "Datum1 liegt früher als Datum2";
?>
Offensichtlich ist aber das Datum2 größer/später. PHP vergleicht Zeichenketten immer von links nach rechts. Bei den angegebenen Datum-Formaten produzieren wir logische Fehler. Wir müssen hier ja zuerst die Jahreszahlen 1997/1998 prüfen, dann die Monatszahlen 04/03 und abschliessend die Tageszahlen 16/11. Einfach wird die Sache dann, wenn wir das Datum in der Form jjjj-mm-tt speichern:
<?php
$datum1 = "1997-04-16";
$datum2 = "1998-03-11";
if($datum1 > $datum2) echo "Datum1 liegt später als Datum2";
if($datum1 < $datum2) echo "Datum1 liegt früher als Datum2";
?>
Hier werden die beiden Zeichenfolgen von vorne nach hinten verglichen - das Ergebis ist offensichtlich richtig.
Wenn wir in unserer MySQL-Tabelle nun ein Datumsfeld haben, so können wir ein Datum wie folgt definieren:
Tabelle Kundenstamm
name varchar(50)
anmeld date
Mit ein wenig Code können wir diese Tabelle nun mit Daten füllen:
<?php
$sql = "INSERT INTO kunden (name,anmeld) VALUES ('Meier KG', now())";
mysql_query($sql);
?>
Unsere Tabelle kunden beinhaltet nun eine Zeile mit:
name => Meier KG
anmeld => 2008-06-16
Falls nicht nur das Datum, sondern zusätzlich auch die Uhrzeit wichtig ist, dann definieren wir das Feld "anmeld" etwas anders:
name varchar(50)
anmeld datetime
Nach:
<?php
$sql = "INSERT INTO kunden (name,anmeld) VALUES ('Meier KG', now())";
mysql_query($sql);
?>
steht in unserer Tabelle kunden nun folgendes:
|