Andreas: Datum in Formular eingeben

Hallo,
habe ein Datum-Feld in der MySQL DB.
Im Formular gib ich z.B. 31.8.04 ein,
in der Tabelle steht dann 2031-08-04.
ich möchte aber die Eingabe nicht verändern.
Wie muss ich das Datum vor dem Speichern umformen, damit es richtig gespeichert wird.

Gruß Andreas

  1. hi,

    habe ein Datum-Feld in der MySQL DB.

    welcher spaltentyp?

    Im Formular gib ich z.B. 31.8.04 ein,
    in der Tabelle steht dann 2031-08-04.

    ja, sieht nach DATE aus.

    ich möchte aber die Eingabe nicht verändern.
    Wie muss ich das Datum vor dem Speichern umformen, damit es richtig gespeichert wird.

    so, wie es das manual zu DATE angibt, http://dev.mysql.com/doc/mysql/de/DATETIME.html

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hello,

      habe ein Datum-Feld in der MySQL DB.
      Im Formular gib ich z.B. 31.8.04 ein,
      in der Tabelle steht dann 2031-08-04.
      ich möchte aber die Eingabe nicht verändern.
      Wie muss ich das Datum vor dem Speichern umformen, damit es richtig gespeichert wird.

      Der Darstellungstyp im Formular und der Spaltentyp für die Speicherung haben erstmal gar nichts miteinander zu tun. Es ist Aufgabe Deiner API, vor dem Wegschreiben und nach dem Holen die Datenformate aufeinander anzupassen.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hallo,
        rechne das Datum doch einfach in einen Timestamp um und speichere diesen dann.

        mfg Bernd

        1. Hi,

          rechne das Datum doch einfach in einen Timestamp um und speichere diesen dann.

          MySQL bietet einige mächtige Datums-Funktionen (siehe http://dev.mysql.com/doc/mysql/de/Date_and_time_functions.html), die mit einem Unix-Timestamp erstmal nicht genutzt werden können (man müsste überflüssigerweise ständig FROM_UNIXTIME() anwenden). Überdies sollte bekannt sein, dass ein Unix-Timestamp lediglich die Daten zwischen 1901 bzw. 1970 und 2038 abbilden kann und somit nicht für alle Anwendungsfälle geeignet sein kann.

          M.E. ist es also sinnvoller, die von MySQL bereitgestellten Typen für Zeit- und Datumswerte zu benutzen und die von der Endanwendung benötigten Werte von MySQL konvertieren zu lassen. Wird von der Anwendung z.B. trotzdem mal ein Timestamp benötigt, ruft man sich diesen mit SELECT UNIX_TIMESTAMP(datumsspalte) ab. Alle anderen Formatierungen des Datums kann man ebenfalls bereits von MySQL mit o.g. Funktionen vornehmen.

          Gruß,
          Andreas.

          1. Hello,

            MySQL bietet einige mächtige Datums-Funktionen (siehe http://dev.mysql.com/doc/mysql/de/Date_and_time_functions.html), die mit einem Unix-Timestamp erstmal nicht genutzt werden können (man müsste überflüssigerweise ständig FROM_UNIXTIME() anwenden). Überdies sollte bekannt sein, dass ein Unix-Timestamp lediglich die Daten zwischen 1901 bzw. 1970 und 2038 abbilden kann und somit nicht für alle Anwendungsfälle geeignet sein kann.

            M.E. ist es also sinnvoller, die von MySQL bereitgestellten Typen für Zeit- und Datumswerte zu benutzen und die von der Endanwendung benötigten Werte von MySQL konvertieren zu lassen. Wird von der Anwendung z.B. trotzdem mal ein Timestamp benötigt, ruft man sich diesen mit SELECT UNIX_TIMESTAMP(datumsspalte) ab. Alle anderen Formatierungen des Datums kann man ebenfalls bereits von MySQL mit o.g. Funktionen vornehmen.

            Genau!
            Und mittels PHP als Interface kann man dann ja auch alle am Client denkbaren sinnvollen Formate in das MySQL-"Max-Range"-Format umrechnen und zurück. Man muss sich einfach davon frei machen, dass Clienteingaben direkt an die Datenbank gehen oder Datenbankspalten direkt beim Client landen müssen.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau