Datum Problem MYSQL
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfragen
daten
differenz
fan
folgendes schreiben
gen
grundgedanke
insert
klar mache
klausel
kleines vorwort
milliardenbereich
schema
situation
statement
tabelle
test
vielen dank
werte integer insert
zeile
-
War der Datentyp time nicht so ein komischer, der die Zeit als eine Zahl im Milliardenbereich abspeichert ab einem gewissen Datum (x.x.1970?)?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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.
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage