steffen: Datum in Datenbank

Hi,

ich hab mal eine recht allgemeine Frage.

Nämlich Datum in eine SQL Datenbank speichern.

Dazu kann man dem Feldtyp Date geben, aber dort wird es abgespeichert in  0000-00-00

Die ganze Zeit hab ich das Problem umgangen, indem ich ein das Datum per date("d.m.Y") in ein textfeld gespeichert habe.

Wie macht ihr es? Was ist die beste Lösung.

Danke euch schonmal :)

  1. Hallo Steffen

    Wie macht ihr es? Was ist die beste Lösung.

    Probier es mal mit dieser funktion, die das europäische Datumsformat in ein SQL taugliches umwandelt:

    function Datum_mySQL2Dt($datum){
     list($jahr, $monat, $tag) = explode("-", $datum);
        if ($jahr < 20 ){
      $jahr += 2000;
     }
        elseif ($jahr < 100 ){
      $jahr += 1900;
     }
        return sprintf("%02d.%02d.%04d", $tag, $monat, $jahr);
    }

    function Datum_DtmySQL2($datum){
     list($tag, $monat, $jahr) = explode(".", $datum);
        if ($jahr < 20 ){
      $jahr += 2000;
     }
        elseif ($jahr < 100 ){
      $jahr += 1900;
     }
        return sprintf("%04d-%02d-%02d", $jahr, $monat, $tag);
    }

    Wenn Du dann das Datum in die Datenbank eintrögst schreibs, dan verwende:

    Datum_mySQL2Dt($Daten["Name_Der_Zelle"])...

    Gruß
    Olli

  2. echo $begrüßung;

    Nämlich Datum in eine SQL Datenbank speichern.

    Vermutlich meinst du eine MySQL-Datenbank. Andere Datenbanken verhalten sich möglicherweise anders.

    Dazu kann man dem Feldtyp Date geben, aber dort wird es abgespeichert in  0000-00-00

    Dann hast du etwas flasch gemacht. Möchtest du uns sagen, wie diese nicht funktionierende Lösung ausgesehen hat, damit dir jemand sagen kann, was daran nicht richtig war?

    Die ganze Zeit hab ich das Problem umgangen, indem ich ein das Datum per date("d.m.Y") in ein textfeld gespeichert habe.
    Wie macht ihr es?

    Ein DATE/DATETIME/TIMESTAMP-Feld (je nach Anwendungsfall) zu verwenden ist schon die bessere Vorgehensweise, weil dann MySQL auch mit diesen Werten rechnen kann.

    Man kann den Unix-Timestamp, den PHP verwendet, zu MySQL senden, und dort mittels FROM_UNIXTIME() entgegennehmen. Man kann aber auch das Datum in ein von MySQL erkanntes Text-Format bringen. Siehe: The DATETIME, DATE, and TIMESTAMP Types

    Was ist die beste Lösung.

    Immer die, die für den jeweiligen Anwendungsfall maßgeschneidert ist.

    echo "$verabschiedung $name";