Problem time_to_sec
am 21.01.2007 13:24:23 von Marc Wiemers
Hallo,
ich habe ein Problem mit der Summation der Zeit. Ich frage wie es in den
einschlägigen Foren beschrieben wie folgt:
select sec_to_time(sum(time_to_sec(laenge))) as zeit from hoerspiele
where ist_da = '1'
Leider funktioniert das nicht mehr seit dem ich mysql auf 5.0.32
upgedate habe. Statt etwas über 8000 Stunden kommen 838:59:59 Stunden
heraus.
Ich habe mal geschaut was bei den sec raus kommt. Es sieht so aus als
wenn die Variable zu kurz wäre es kommt die Zahl 31676293.
Gibt es eine Möglichkeit die Zahl zu vergrößern? Oder das Problem irgendwie
anders zu lösen?
Marc
Re: Problem time_to_sec
am 21.01.2007 16:38:44 von Axel Schwenke
Marc Wiemers wrote:
>
> ich habe ein Problem mit der Summation der Zeit. Ich frage wie es in den
> einschlägigen Foren beschrieben wie folgt:
>
> select sec_to_time(sum(time_to_sec(laenge))) as zeit from hoerspiele
> where ist_da = '1'
>
> Leider funktioniert das nicht mehr seit dem ich mysql auf 5.0.32
> upgedate habe. Statt etwas über 8000 Stunden kommen 838:59:59 Stunden
> heraus.
Lesen bildet. Lies doch z.B. mal das Manual:
http://dev.mysql.com/doc/refman/5.0/en/time.html
"TIME values may range from '-838:59:59' to '838:59:59'"
Außerdem wäre es eine prima Idee, Warnungen von MySQL auch mal zu lesen
statt sie zu ignorieren:
mysql> select time_to_sec('838:59:59');
+--------------------------+
| 3020399 |
+--------------------------+
mysql> select sec_to_time(3020399+1);
+----------------------+
| 838:59:59 |
+----------------------+
1 row in set, 1 warning (0,00 sec)
mysql> show warnings;
+---------+------+------------------------------------------ -+
| Level | Code | Message |
+---------+------+------------------------------------------ -+
| Warning | 1292 | Truncated incorrect time value: '3020400' |
+---------+------+------------------------------------------ -+
> Gibt es eine Möglichkeit die Zahl zu vergrößern? Oder das Problem irgendwie
> anders zu lösen?
Du könntest z.B. eine stored Procedure dafür schreiben.
XL