Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [MySQL] Somma di ore

  1. #1

    [MySQL] Somma di ore

    Ciao a tutti, è tutta sera che sto cercando tra i vari forum e siti ita/eng la soluzione al mio problema, ma non la trovo!

    mettiamo una tabella semplice:

    id - inizio - fine

    1 2017-04-02 20:00:00 2017-04-02 22:00:00
    2 2017-04-04 22:00:00 2017-04-05 00:00:00
    3 2017-03-01 18:00:00 2017-03-01 22:00:00



    Con la funzione TIMEDIFF ottengo effettivamente per ogni riga la differenza tra inizio e fine ed i dati sono corretti:

    02:00:00
    02:00:00
    04:00:00

    ma se io voglio fare la SOMMA di queste righe con SUM

    SUM(TIMEDIFF(fine, inizio))


    ottengo un valore anomalo:

    80000.000000

    perchè ?
    perchè non ottengo solo 8 ?

    come posso fare per ottenere solo 8?
    Inoltre se nella tabella aggiungo una mezzora ad una delle righe ottengo 83000.000000

    dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    non so perchè ti da quel risultato, ma io sto usando timestampdiff, che è "settabile" sia in minuti che in secondi

    SELECT SUM( TIMESTAMPDIFF(
    SECOND , inizio, fine ) ) AS somma
    FROM tabella
    restituisce con i tuoi record 28800
    oppure
    SELECT SUM( TIMESTAMPDIFF(
    MINUTE , inizio, fine ) ) AS somma
    FROM tabella
    restituisce 480

    la prima è più precisa perchè mi pare che la seconda, se hai che so 1 minuto e 35 secondi ignora i secondi, mentre la prima somma tutto

  3. #3
    Ottimo, grazie mille.
    La seconda soluzione va benissimo in quanto non uso i secondi ma solo i minuti (tra l'altro arrotondati alla mezzora), quindi :00 oppure :30.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.