MySQL "DATE"
Ralf
- datenbank
0 Sönke Tesch0 Erde
Hallo Leute,
ich habe folgendes Problem:
Ich habe ein Formular in dem man "TAG", "Monat" und "Jahr" in 3 Inputfeldern als Zahlenwerte eingibt.
Zuerst habe ich in der Datenbank auch 3 Felder jeweils für Tag Monat und Jahr angelegt. Das ist dann aber doch nicht so das wahre, weil ich es später ja wieder auslesen möchte und das zu kompliziert ist.
Nun möchte ich mit dem MySQL-Typ "DATE" das machen. Jedoch ist der Standart ja immer 0000-00-00 ...
Mein Problem (bzw. meine beiden Probleme) ist nun, dass ich nicht genau weiß wie ich das Jahr, Monat und Tag mit den 3 inputfeldern in dieses Format INSERT(en) kann bzw. Wenn es drin ist dass ich dann in meiner Ausgabe nicht zb.:
2003-02-26 sondern 26.02.2003
stehen hab :'((
Kann mir jemand nen Tipp geben?
Danke schonmal im voraus!
Nun möchte ich mit dem MySQL-Typ "DATE" das machen. Jedoch ist der Standart ja immer 0000-00-00 ...
Standard, nicht Standart :)
Mein Problem (bzw. meine beiden Probleme) ist nun, dass ich nicht genau weiß wie ich das Jahr, Monat und Tag mit den 3 inputfeldern in dieses Format INSERT(en) kann
Der SQL-Befehl ist ein einfacher Text, Du mußt also lediglich Deine Daten zu so einem Text zusammenfügen. Beachte dabei aber, daß Du von außen kommende Daten nicht einfach roh weiterverarbeitest (Stichwort: mysql_escape_string()).
In Deinem Falle müsstest Du erstmal prüfen, ob es sich bei den drei Daten um Zahlen handelt und ob sie zusammen ein gültiges Datum ergeben. Deine Programmiersprache bietet Dir dafür sicher passende Funktionen an (is_numeric() und checkdate() fallen mir da für PHP ein).
Abschließend setzt Du diese drei Daten in den SQL-Text ein. Zum Formatieren gibt es fast überall eine Funktion namens sprintf(). Sofern vorhanden kann man alternativ auch mktime() und date() benutzen, das hätte den Vorteil, daß ein Datum à la 30.11.2003 automatisch in 1.12.2003 umgerechnet wird.
bzw. Wenn es drin ist dass ich dann in meiner Ausgabe nicht zb.:
2003-02-26 sondern 26.02.2003
MySQL bietet Dir ein reichhaltiges Angebot an Funktionen zum Bearbeiten von Daten an. Schau mal in die Anleitung: http://www.mysql.com/doc/en/Date_and_time_functions.html.
Gruß,
soenk.e
Hallo
2003-02-26 sondern 26.02.2003
in php kann mans z.B. auch so machen:
Du hast 3 Inputfelder oder selectfelder jenachdem, diese 3 haben alle einen Namen und die ziehst du zusammen:
$geburtsdatum = $gebjahr."-".$gebmonat."-".$gebtag;
und das $geburtsdatum speicherst du dann in deiner DB als Format date ab.
Naja nur ein Tip in php, weiss ja nicht was du da nimmst...
Gruß,
soenk.e
LG Christoph
Ist eigentlich nicht weiter Schlimm.
Wenn du die 3 Sachen in einzelnen feldern hast kannst du sie einfach zusammensetzen.
z.b. die Variablen $tag, $monat, $jahr
Da kannst du dir dein Format basteln mit
$datum = $jahr."-".$monat."-".$tag
Die Variable Datum könntest du jetzt problemlos übergeben.
--------------
Wenn Du es im Format 28.02.2003 hast dann musst du es hat vorher auseinadernehmen.
angenommen in der Variable $datum steht "28.02.2003"
$datum = substr($datum,6,4)."-".substr($datum,3,2)."-".substr($datum,0,2);
jetzt würde in der variable das datum "2003-02-28" stehen.
Erde
Hallo Leute,
ich habe folgendes Problem:
Ich habe ein Formular in dem man "TAG", "Monat" und "Jahr" in 3 Inputfeldern als Zahlenwerte eingibt.
Zuerst habe ich in der Datenbank auch 3 Felder jeweils für Tag Monat und Jahr angelegt. Das ist dann aber doch nicht so das wahre, weil ich es später ja wieder auslesen möchte und das zu kompliziert ist.
Nun möchte ich mit dem MySQL-Typ "DATE" das machen. Jedoch ist der Standart ja immer 0000-00-00 ...
Mein Problem (bzw. meine beiden Probleme) ist nun, dass ich nicht genau weiß wie ich das Jahr, Monat und Tag mit den 3 inputfeldern in dieses Format INSERT(en) kann bzw. Wenn es drin ist dass ich dann in meiner Ausgabe nicht zb.:
2003-02-26 sondern 26.02.2003
stehen hab :'((
Kann mir jemand nen Tipp geben?Danke schonmal im voraus!