Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Warning su query MySQL

  1. #1

    Warning su query MySQL

    Ho un problema su una Warning che mi viene fuori da una query su MySQL.

    Il problema e' che questa Warning non ho capito esattamente il perche' mi viene fuori anche perche' non sempre mi viene fuori.

    Sto cercando di fare la somma dei tempi che ho in un campo della mia tabella Ritardi raggrupandoli per codiceVolo.

    Mi succede che nn sempre pero ottengo la somma di questi tempi ma ottengo NULL, con sotto una Warning.

    Digitando poi questo comando

    SHOW WARNINGS;

    ottengo il perche' , e mi viene fuori :



    level : Warning
    code :1292
    Message : Truncated incorrect Time Value : '66900';

    La mia query e' di questo tipo:

    SELECT codiceVolo, TIME(SUM(tempo_Ritardo)) AS sommaRitardi FROM Ritardi WHERE data_Ritardo = CURDATE() GROUP by codice_Volo;


    Che cosa signifa?

    Grazie per chiunque risponda a questo mio enorme problema!

  2. #2
    sum() ragiona in decimi/centesimi mentre TIME in sessagesimi.

    un valore del tipo "66900" significa per TIME() 6 ore 69 minuti e 00 secondi.

    ovvio che ti segnali un errore ogni volta che il valore dei minuti o quello dei secondi sia superiore a 59, mentre le ore arriverebbero sino a 800 e piu', non ricordo di preciso.



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Come potrei quindi ottenere la stessa cosa visto che lavorano su scale di valore diverse?

    Grazie tantissimo cmq!

    Vorrei capire dove le hai lette queste cose..?! Quante ne sai!!!

  4. #4
    Originariamente inviato da PablitoEscobar
    Come potrei quindi ottenere la stessa cosa visto che lavorano su scale di valore diverse?
    Al volo cosi' non saprei.. siccome devi sommare un raggruppamento senza conoscere a priori "quanti" record troverai, credo si debba trasformare il time in valore assoluto, sommare e poi riportare in sessagesimi... prova a vedere se funziona...

    codice:
    SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(tempo_Ritardo))) as total_time
    from
    where
    group by
    
    ecc...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Sei un grande! Grazie mille ora funziona in modo perfetto!


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.