kostenloser Webspace werbefrei: lima-city


Datum Problem MYSQL

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. War der Datentyp time nicht so ein komischer, der die Zeit als eine Zahl im Milliardenbereich abspeichert ab einem gewissen Datum (x.x.1970?)?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. b*****n

    Hi

    Also ich hab mal ein Bisschen versucht das zu Protokollieren:

    - Daten abfragen (von test)
    - Differenz ausrechnen (von id 1 u. 2)
    - Differenz einf?gen

    Eigentlich recht einfach? Brauchst du das f?r Delphi??

    b2k-fan
  4. d*****s

    Hier geht es nur um mysql.
    ...
    create table test (id int auto_increment primary key, zeit time);
    ...
    Und jetzt m?chte ich das bei 3 dann die Differenz der beiden Zeiten steht.


    um dir die differenz anzuzeigen kannst du in deinem(!) fall folgendes verwenden:

    SELECT SEC_TO_TIME(MAX(TIME_TO_SEC(zeit)) - MIN(TIME_TO_SEC(zeit))) AS Differenz from test ORDER BY Differenz;


    das geht aber schon nicht mehr, wenn du 3 zeilen h?ttest, bei der die 3. zeile den niedrigsten wert in zeit h?tte.
    zum einf?gen dieser differenz als neuen datensatz kann ich leider nur sagen, dass es nur mit mysql nicht geht. es gibt zwar einen "INSERT .. SELECT - Syntax", aber es gibt da eine wichtige regel:

    http://dev.mysql.com/doc/mysql/de/INSERT_SELECT.html:
    Die Ziel-Tabelle des INSERT-Statements darf nicht in der FROM-Klausel des SELECT-Teils der Anfrage erscheinen, weil es in ANSI-SQL verboten ist, aus derselben Tabelle auszuw?hlen (SELECT), in die eingef?gt wird. (Das Problem liegt darin, dass das SELECT m?glicherweise Datens?tze finden w?rde, die fr?her w?hrend desselben Laufs eingef?gt wurden. Wenn man Sub-Select-Klauseln verwendet, k?nnte die Situation schnell sehr verwirrend werden!)


    hoffe ich konnte dir helfen. :smile:
    mfg

    -----------
    nachtrag:

    [qoute]Kann ich mit mysql eigentlich folgendes schreiben:
    create table neuertest (werte integer);
    insert into neuertest(time_to_sec(select zeit from test where id=1));[/quote]

    joa sicher geht das. eben mit "INSERT ... SELECT".

    CREATE TABLE neuertest (werte INT);
    INSERT INTO neuertest (werte) SELECT TIME_TO_SEC(test.zeit) FROM test WHERE test.id=1;


    Beitrag ge?ndert am 15/12/2004, 10:15 von des-sys
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!