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

    Calcoli con le date in Access

    Salve a tutti, scrivo per chiedere aiuto con un calcolo in Access. Ho bisogno di calcolare il tempo trascorso tra due date ed esprimere il risultato in ore. Ho trovato l’articolo che spiega come calcolare l’intervallo trascorso tra due date all’indirizzo: http://support.microsoft.com/kb/210604/it
    Utilizzando l’istruzione GetElapsedTime() ho calcolato l’intervallo ma il risultato viene espresso in giorni, ore, minuti e secondi…è possibile trasformare il risultato in numero di ore? Come? Grazie per l’aiuto !
    Ally

  2. #2

  3. #3

    non posso usare DateDiff

    Leggendo la spiegazione della funzione DateDiff che mi hai suggerito mi sono resa conto di non aver formulato bene la domanda perchè i miei dati di partenza comprendono data e ora non soltanto la data! Con l’istruzione "GetElapsedTime" si calcola l'esatto intervallo di tempo trascorso tra due date e orari ma il risultato viene indicato in termini di giorni, ore e minuti trascorsi (tutto in unico campo). Come faccio ad esprimere il risultato ottenuto in termini di ore trascorse? se potessi separare "giorni" "ore" e "minuti" basterebbe una semplice moltiplicazione per sapere quante ore sono passate ma non so come separare il risultato!
    Grazie per l'aiuto

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    La funzione datediff la puoi applicare anche a delle date composte sia dalla data che dall'ora.
    Ti faccio un esempio semplice.

    Ho fatto una tabellina con tre campi:
    id
    data_inizio
    data_fine

    ho inserito come data_inizio 27/04/2007 15.30.00 e come data fine 29/04/2007 19.15.00.
    Ho fatto poi questa query

    SELECT DateDiff("h",data_inizio,data_fine) AS ore FROM differenza_orari;

    e il risultato è stato di ore 52.
    Spero di essere stato chiaro.

  5. #5
    Grazie Nicola, ci provo e ti faccio sapere se riesco!

  6. #6

    problema con le differenze fra record

    Grazie ancora Nicola, con i tuoi consigli sono riuscita a sistemare quel problema e come succede in queste cose ora ne ho un altro!
    Mi chiedevo come si fa a ottenere la differenza tra i valori di record successivi di uno stesso campo.. Ad es. in un campo i valori dei record in successione sono: 100; 80; 50. Come faccio a fargli calcolare la differnza tra i valori del 1° e 2° RECORD (cioè 100 - 80 = 20) poi la differenza tra i valori del 2° e 3° RECORD ( cioè 80 - 50 = 30) e così via?
    Magari è facile ma tutto quello che ho letto finora non mi ha aiutata..
    Grazie di tutto
    Ally

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Allora. Supponendo di avere una tabella di nome valori con due campi di nome id (la tua chiave primaria) e valore (che contiene i tuoi valori numerici) devi eseguire una query del genere

    codice:
    SELECT valori.id, valori.valore, valori.valore-nz(tab1.valore,0) AS differenza
    FROM valori, valori AS tab1
    WHERE tab1.id =  (select max(tab2.id) from valori as tab2 where tab2.id < valori.id order by valori.id);
    In pratica ho creato due alias di tabella e tramite una subquery fai in modo che il fatto che gli id potrebbero anche non essere contigui non crei problemi.
    Devi solo adattare i nomi dei campi al tuo caso specifico.
    Fammi sapere.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    1

    differenze fra valori di un record non consecutivi

    Ciao a tutti, ho un problema analogo a quello di Ally solo che invece di calcolare la differenza tra i valori di record successivi di uno stesso campo, devo calcolare la differenza fra valori di record dello stesso campo ma non consecutivi! Si può fare?
    Grazie per l'aiuto!
    Giancarlo

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Potresti fare un esempio? Non mi è molto chiara la tua esigenza.
    P.S. Mi era stato fatto notare in pvt da ally che la query che le avevo postato funzionava solo con un numero limitato di record. Dopo un tot, anche abbastanza basso, la query crashava quindi non fateci molto affidamento.

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.