Kalle_Worms: Datums-Abfrage MySQL

Hi,

zwecks Anzeige der letzten Änderung habe ich ein 11-stelliges numerisches Feld, in das ich die PHP- Funktion time() hineingebe. Bekanntlich sind das die Sekunden seit ... (1970 ?)

Die Anzeige bereite ich mit PHP date(...) auf, funzt einwandfrei.

Nun möchte ich dieses Zeitformat nutzen, um Sätze abzufragen, die vom 1. bis 31. Dez. geändert wurden. Habe im Moment jedoch keine Idee, wie das in MySQL aussehen kann.

Bitte um einen Tipp.

LG Kalle

  1. Hallo!

    zwecks Anzeige der letzten Änderung habe ich ein 11-stelliges numerisches Feld, in das ich die PHP- Funktion time() hineingebe. Bekanntlich sind das die Sekunden seit ... (1970 ?)

    Das Datumsformat das time() ausgibt, kennt MySQL als Spaltentyp nicht.

    Nun möchte ich dieses Zeitformat nutzen, um Sätze abzufragen, die vom 1. bis 31. Dez. geändert wurden. Habe im Moment jedoch keine Idee, wie das in MySQL aussehen kann.

    Wenn Du mit MySQL Dtumsberechnungen machen möchtest, mußt Du die Daten in Spalten mit vom Typ DATE, TIME, DATETIME, YEAR und TIMESTAMP ("Sonderfunktion") ablegen. Dann kannst Du sogar spezielle Datum und Zeit-SQLfunktionen benutzen.

    Schaue bitte dazu in der Doku nach:
    7.2.2 Datums- und Zeit-Typen
    http://dev.mysql.com/doc/mysql/de/Date_and_time_types.html

    7.3.4 Datums- und Zeit-Funktionen
    http://dev.mysql.com/doc/mysql/de/Date_and_time_functions.html

    MfG, André Laugks

    --
    L-Andre @ gmx.de
    1. Hallo!

      Das Datumsformat das time() ausgibt, kennt MySQL als Spaltentyp nicht.

      Die Aussage hilft, dann brauche ich also unter MySQL nicht weiter zu suchen, Lösung muss mit PHP gemacht werden.

      Danke, Kalle

      1. Hallo Kalle,

        Das Datumsformat das time() ausgibt, kennt MySQL als Spaltentyp nicht.
        Die Aussage hilft, dann brauche ich also unter MySQL nicht weiter zu suchen, Lösung muss mit PHP gemacht werden.

        es wäre aber wesentlich sinnvoller wenn du den Type der Spalte ändern würdest. Um die Daten mit php auszusortieren musst du nämlich erst _alle_ Datensätze abfragen und kannst dann sortieren - und das können u.U. (ich kenne deine Daten nicht) sehr viele werden.

        Grüße aus Nürnberg
        Tobias

        1. Hallo Tobias,

          es wäre aber wesentlich sinnvoller wenn du den Type der Spalte ändern würdest. Um die Daten mit php auszusortieren musst du nämlich erst _alle_ Datensätze abfragen und kannst dann sortieren - und das können u.U. (ich kenne deine Daten nicht) sehr viele werden.

          Nöö, dat geiht. z.B. 1.1. - 31.1.2005.
          Aufruf: http://xxx.php?von=20050101&bis=20050131

          if ( $_GET['von'] ) {
              $von = $_GET['von']; // 20041213
              $von_sec = mktime(0,0,0,substr($von, 4, 2 ),substr($von, 6, 2 ),substr($von, 0, 4 ));
            }
            if ( $_GET['bis'] ) {
              $bis = $_GET['bis']; // 20041231
              $bis_sec = mktime(23,59,59,substr($bis, 4, 2 ),substr($bis, 6, 2 ),substr($bis, 0, 4 ));
            }
          ...
           SELECT ...
           WHERE zeit_start >= ".$von_sec." AND zeit_start <= ".$bis_sec;

          Gruß, Kalle

          1. Hallo!

            Nöö, dat geiht. z.B. 1.1. - 31.1.2005.
            Aufruf: http://xxx.php?von=20050101&bis=20050131
            [...]

            1. Du speicherst Daten "falsch" ab.

            2. Das was Du da machst ist umständlich. So wird die PHP und MySQL nie den schlechten Ruf verlieren die sie haben.

            MfG, André Laugks

            --
            L-Andre @ gmx.de
            1. Hallo!

              1. Du speicherst Daten "falsch" ab.
              2. Das was Du da machst ist umständlich. So wird die PHP und MySQL nie den schlechten Ruf verlieren die sie haben.

              Ja, du hast recht, werde das bei der Definition neuer Tabellen berücksichtigen. Es lag daran, dass ich keine vernünftige MySQL Literatur hatte.

              LG Kalle