Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    select sum di un campo data/ora

    ciao

    in una tabella di access ho un campo data/ora in formato hh:mm:ss

    vorrei fare una select sum(campo) where condizione

    per avere la somma dei valori di quel campo (ovviamente espressa in hh:mm:ss) ma non funziona...

    mi ritorna una cosa tipo 1,342432

    voi sapete dirmi come devo fare? grazie
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  2. #2
    Io setterei il campo come numerico e poi gli passerei il dato come numero di secondi. A quel punto fare la somma sarebbe una cosa da ragazzi.

  3. #3
    lo farei anche io!
    ma il db non è mio e non posso modificarne la struttura...
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  4. #4
    Allora ricava l'ora e la trasformi in secondi, ricavi i minuti e li traformi in secondi, i secondi... sono già secondi.
    Sommi le tre variabili e ne crei una quarta che è la somma delle tre.
    Fai un ciclo for fino alla fine dei record e ad ogni fine ciclo incrementi il totale dei secondi.
    Alla fine di tutto, dai secondi ricavi le ore, i minuti e i secondi.
    Secondo me potrebbe essere una soluzione, laboriosa sicuramente, ma non saprei come altro modo fare.

  5. #5
    infatti è proprio la soluzione che ho adottato!

    mi sono fatto queste 2 funzioni

    codice:
    Function get_secondi_from_ora(ora)
    
    	hhh = cint(left(ora,2))
    
    	mmm = cint(right(left(ora,5),2))
    
    	sss = cint(right(ora,2))
    
    
    get_secondi_from_ora=hhh*3600+mmm*60+sss
    
    
    End Function
    
    Function get_ora_from_secondi(secondi)
    
    	
    	hhh = cstr(int(secondi/3600))
    
    	mmm = cstr(int((secondi-3600*hhh)/60))
    
    	sss = cstr(int((secondi-3600*hhh)-mmm*60))
    
    
    get_ora_from_secondi=hhh&":"&mmm&":"&sss
    
    End Function
    grazie
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  6. #6

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 © 2026 vBulletin Solutions, Inc. All rights reserved.