Ben: timestamp falsch

Hallo,

ich habe ein kleines Problem bei einem INSERT. Ich habe ein Feld vom Typ timestamp, für das ich beim INSERT auch keinen Wert übergebe. Im Nachhinein steht dort aber ein recht schwachsinniger Wert (das Datum läuft dann auf den 19.01.2038 hinaus). Am Apache kann es aber nicht liegen, da dort für time() der richtige Timestamp ausgegeben wird. Gibt es in MySQL irgendwo die Funktion, dass ich das Datum eingeben muss oder soetwas? Bin etwas ratlos.

Schonmal vielen Dank und viele Grüße
Ben

  1. echo $begrueszung;

    ich habe ein kleines Problem bei einem INSERT. Ich habe ein Feld vom Typ timestamp, für das ich beim INSERT auch keinen Wert übergebe. Im Nachhinein steht dort aber ein recht schwachsinniger Wert (das Datum läuft dann auf den 19.01.2038 hinaus).

    Wie sieht denn der "schwachsinnige Wert" aus? 20380119xxxxxx oder anders?

    Die Unterschiede zwischen einen Unix-Timestamp mit einem MySQL-Timstamp sind dir bekannt?

    echo "$verabschiedung $name";

    1. Hi dedlfix,

      Wie sieht denn der "schwachsinnige Wert" aus? 20380119xxxxxx oder anders?

      Fast.. 20050326144833

      Die Unterschiede zwischen einen Unix-Timestamp mit einem MySQL-Timstamp sind dir bekannt?

      Daran hab ich natürlich mal wieder nicht gedacht... Da werd ich wohl nochmal nachsehen, wie ich einen MySQL-Timestamp richtig umwandle... Danke für den Denkanstoß. Ist wohl noch "zu früh am Morgen" ;-)

      Gruß
      Ben

      1. echo $begrueszung;

        Der MySQL-Timestamp ist "nur" Datum und Uhrzeit zusammengefasst in der Form YYYYMMDDhhmmss. Das hat aber den Vorteil, dass der Wertebereich gegenüber dem Unix-Timestamp (Sekunden seit 1.1.1970 00:00 Uhr UTC) größer ist.

        Zum Umwandeln gibt es übrigens die MySQL-Funktionen FROM_UNIXTIME() und UNIX_TIMESTAMP()

        echo "$verabschiedung $name";

        1. Hello,

          Der MySQL-Timestamp ist "nur" Datum und Uhrzeit zusammengefasst in der Form YYYYMMDDhhmmss. Das hat aber den Vorteil, dass der Wertebereich gegenüber dem Unix-Timestamp (Sekunden seit 1.1.1970 00:00 Uhr UTC) größer ist.

          Ist ja auch kein Kunststück bei 14 Bytes gegenüber vier. ;-))

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

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          1. echo $begrueszung;

            Der MySQL-Timestamp ist "nur" Datum und Uhrzeit zusammengefasst in der Form YYYYMMDDhhmmss. Das hat aber den Vorteil, dass der Wertebereich gegenüber dem Unix-Timestamp (Sekunden seit 1.1.1970 00:00 Uhr UTC) größer ist.

            Ist ja auch kein Kunststück bei 14 Bytes gegenüber vier. ;-))

            Und dabei gehen die noch verschwenderisch damit um, nutzen gar nicht den vollen Wertebereich der Bytes aus. ... wollte ich zuerst schreiben, doch dann warf ich einen Blick ins Handbuch und denke, dass wir uns hier beide irren.

            MySQL verwendet auch nur 4 Byte für Timestamp (gegenüber 8 Byte für ein Datetime) und der Wertebereich ist der gleiche wie beim Unix-Timestamp.

            echo "$verabschiedung $name";

            1. Hello,

              tatsächlich.
              Hatte ich doch glatt falsch in Erinnerung.
              http://dev.mysql.com/doc/mysql/de/storage-requirements.html

              Da muss man ja richtig aufpassen.
              Allerdings ist die Darstellung an der Schnittstelle immer im von Dir beschriebenen Format, oder?

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

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau
              1. echo $begrueszung;

                Da muss man ja richtig aufpassen.
                Allerdings ist die Darstellung an der Schnittstelle immer im von Dir beschriebenen Format, oder?

                Nein, auch das nicht. Das Format hat sich in Version 4.1 wegen "SQL standards compliance" geändert. Beim Lesen wird noch die "kompakte" Form erkannt. Ausgegeben wird nun aber YYYY-MM-DD hh:mm:ss

                echo "$verabschiedung $name";

                1. Hello,

                  echo $begrueszung;

                  willst Du nicht mal Deine Begrüßung und Verabschiedung kontrollieren?

                  echo "$verabschiedung $name";

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

                  Tom

                  --
                  Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                  Nur selber lernen macht schlau
                  1. Hallo Tom!

                    echo $begrueszung;
                    echo "$verabschiedung $name";
                    willst Du nicht mal Deine Begrüßung und Verabschiedung kontrollieren?

                    Das _soll_ so sein. Das Forum hier bietet doch als echte Variablen
                    nur $vname (in geschw. Klammern) an, ... oder?

                    ℆, ℒacℎgas

                    --
                    Bei der intendierten Realisierung der linguistischen Simplifizierung
                    des regionalen Idioms resultiert die Evidenz der Opportunität extrem
                    apparent, den elaborierten und quantitativ opulenten Usus nicht assi-
                    milierter Xenologien konsequent zu eliminieren!
                    1. Hallo Lachgas.

                      Das _soll_ so sein. Das Forum hier bietet doch als echte Variablen
                      nur $vname (in geschw. Klammern) an, ... oder?

                      Und das alte {$name} natürlich auch noch. ;)

                      Gruß, Ashura

                      --
                      Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
                      Try it: Become an Opera Lover in 30 days
                    2. Hello,

                      echo $begrueszung;
                      echo "$verabschiedung $name";
                      willst Du nicht mal Deine Begrüßung und Verabschiedung kontrollieren?

                      Das _soll_ so sein. Das Forum hier bietet doch als echte Variablen
                      nur $vname (in geschw. Klammern) an, ... oder?

                      ist mir da irgendein Aprilscherz entgangen?

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

                      Tom

                      --
                      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                      Nur selber lernen macht schlau
                      1. Hallo Tom!

                        ist mir da irgendein Aprilscherz entgangen?

                        Wieso ... ?

                        ℆, ℒacℎgas

                        --
                        Bei der intendierten Realisierung der linguistischen Simplifizierung
                        des regionalen Idioms resultiert die Evidenz der Opportunität extrem
                        apparent, den elaborierten und quantitativ opulenten Usus nicht assi-
                        milierter Xenologien konsequent zu eliminieren!
        2. Hallo dedlfix,

          Zum Umwandeln gibt es übrigens die MySQL-Funktionen FROM_UNIXTIME() und UNIX_TIMESTAMP()

          zum Formatieren kann man natürlich auch gleich DATE_FORMAT() bzw. TIME_FORMAT() verwenden ...

          Grüße aus Nürnberg
          Tobias