Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Somma di ore in MySQL

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    150

    Somma ore

    Avrei un piccolo problemino nel mio DB mysql ho un campo di tipo TIME nel quale aggiungo le ore di presenza degli operai in cantiere per indicare ad esempio 8 ore e mezzo il campo accettrà valori del tipo 08:30:00 e fin qui non ci sono problemi i valori vengono normalmente formattati dal programma e successivamente salvati nel DB; il problema è nella lettura infatti se leggo il valore del campo time ottengo una stringa del tipo 083000 ,non formattata nella forma sopra descritta, inoltre quando effettuo una SUM del campo time ottengo l somam delle ore aggregatra a quella dei minuti e dei secondi ad esempio 126 ore e 40 minuti mi viene scritto come 1264000 supponendo che non voglia aggiungere una campo solo per le ore e uno solo per i minuti ( con conseguente ricalcolo delle ore ) come potrei risolvere il problema ???


    grazie anticipatamente
    Carlo Carbone

  2. #2
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    ma la query com'è?
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Dal mio punto di vista, è errata e problematica la scelta di usare un campo di tipo TIME per memorizzare l'informazione, visto che non si tratta di un orario, ma di un ammontare di ore e minuti, per cui basterebbe probabilmente lavorare con un campo intero escludendo parecchi effetti collaterali.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    150
    ho risolto il problema trasformando il capo TIME in campo TESTO GENERICO ogni volta che salvo i tempi li pongo nel formato hh:mm e ogni volta che devo sommare splitto la stringa in hh e mm usando i : come sentinella rieseguo tutto il ricalcolo, trasformo i minuti in ore e i minuti restanti li otengo come resto della divisione


    uso sempre e solo un campo ma soprattutto funziona superbene ......
    Carlo Carbone

  5. #5
    concordo sul discorso del campo TIME (si può usare tranquillamente un double) a meno di non essere costretti a calcolare il tempo in sessantesimi e non centesimi. Nel caso dei sessantesimi il campo TIME è il più indicato, e per la lettura da un programma esterno, basta formattare nella query così:

    codice:
    "SELECT DATE_FORMAT(tuoCampo, '%H.%i') AS tempo_in_ore_e_minuti FROM tabella";

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.