Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258

    Mysql salvare minuti e sommarli

    Salve, ho un form dove l'utente va a salvare dei dati e tramite un select ho impostato dei valori che sarebbero i minuti scaglionati ogni 30 min (0.30, 1.00, 1.30, 2.00, 2.30, 3.00 etc) questi dati poi li devo sommare per vedere quanti minuti l'utente ha fatto in un determinato periodo, io ho fatto in questo modo:

    Codice PHP:
    $sql "SELECT sum(minuti) FROM tabella WHERE  MONTH (data_inserimento) = MONTH(curdate()) and id_utente = '1'"
    In questo modo viene fatta la somma algebrica, quindi se nella tabella ho questi valori: 0.30, 2.30 mi da come risultato 2.60, mentre a me questi dati dovrebbe considerarli come minuti quindi dovrebbe restituirmi 3 che sarebbero le ore. Sapete darmi qualche consiglio? è una cosa gestibile lato db o va fatta tramite php?

  2. #2
    di che tipo è la colonna minuti?

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Quote Originariamente inviata da optime Visualizza il messaggio
    di che tipo è la colonna minuti?
    decimal(8,2)

  4. #4
    se usi un tipo time http://dev.mysql.com/doc/refman/5.0/en/time.html poi la somma ti dovrebbe venire già giusta

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Altrimenti scrivi realmente i minuti (30, 60 per un'ora, 150 per due ore e mezza) e dopo la somma ci calcoli quante ore ha fatto

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Quote Originariamente inviata da optime Visualizza il messaggio
    se usi un tipo time http://dev.mysql.com/doc/refman/5.0/en/time.html poi la somma ti dovrebbe venire già giusta
    Ho fatto un prova, ma non funziona correttamente. Mi fa sempre la somma algebrica, forse devo utilizzare un metodo diverso per estrarre i dati, e non sum()?

    es.
    00:30:00 - 00:30:00 = 6000

    10:30:00 - 00:30:00 =
    106000 ( io vorrei 11 ore)

    Quote Originariamente inviata da clasku Visualizza il messaggio
    Altrimenti scrivi realmente i minuti (30, 60 per un'ora, 150 per due ore e mezza) e dopo la somma ci calcoli quante ore ha fatto
    Quindi dovrei fare una cosa simile

    30 - 60 - 30 = 120 (120/60 = 2) giusto?

    Edit: ho fatto un altra prova

    30 - 60 - 120 = 3.5 sarà corretto visualizzare 3,5 come 3 e mezza?
    Ultima modifica di sixdas; 21-09-2014 a 13:56

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Puoi sempre calcolare il resto della divisione, se preferisci, ottenendo 3 per le ore e 30 per i minuti
    Lo puoi fare in MySQL o in PHP, a tua scelta

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Quote Originariamente inviata da clasku Visualizza il messaggio
    Puoi sempre calcolare il resto della divisione, se preferisci, ottenendo 3 per le ore e 30 per i minuti
    Lo puoi fare in MySQL o in PHP, a tua scelta
    puoi farmi un esempio?

  9. #9
    hai usato una colonna di tipo time()?

  10. #10
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    mysql
    codice:
    SELECT tuoCampo, 
        SUM(campoMinuti) as sommaMinuti, 
        (SUM(campoMinuti) DIV 60) as oreConvertite, 
        (SUM(campoMinuti) MOD 60) as minutiConvertiti,
    concat((SUM(campoMinuti) DIV 60), ":" , (SUM(campoMinuti) MOD 60)) as stringaOreMinuti
    FROM tuaTabella 
    Group by tuoCampo;
    sommaMinuti è la somma pura del campo (ipotizziamo 210)
    oreConvertite sono le ore (3 ore)
    minutiConvertiti sono i minuti (30 minuti)
    stringaOreMinuti è una rappresentazione in formato orologio (ad esempio, "3:30")

    te le ho messe tutte in modo che tu possa scegliere (e avere più esempi di come fare una certa cosa)

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.