Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    207

    calcolare minuti o ore trascorse tra due date

    Buongiorno vorrei fare in modo di calcolare i minuti o le ore trascorse tra la data di entrata e quella di uscita, il codice in sql è il seguente:
    codice:
    SELECT     IdStraord, dataIngresso, ora1, ora2, ora3, ora4, dataUscita
    FROM         Straordinario
    attualmente ho creato questo script dove non c'è la data di uscita che funziona bene ma se supero le 23:59, non mi calcola correttamente l'orario trascorso.

    codice:
    SELECT SUM((DATEDIFF(n, Straord.ora1, Straord.ora2) + DATEDIFF(n, Straord.ora3, Straord.ora4) - Straord.Mensa - Straord.OreGiornaliere + Straord.OreAss) / 60) AS ore
    come faccio a risolvere il problema? grazie

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Aggiungi 24 ore all'orario d'uscita e prendi il modulo a 24 della differenza fra uscita ed ingresso...

    DiffMinuti = datediff("N", OraInizio, dateadd("H", 24, OraFine)) Mod (24 * 60)

    ps: forse e' pure possibile adattarlo alla query, ma dipende dal database utilizzato
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    devi considerare anche le colonne dataIngresso e dataUscita, non solo le ore...

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    207
    grazie br1, ci provo il database è Sql Server 2000
    si può adattare?
    grazie...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    207
    non riesco a risolvere...... mi date una mano? grazie

  6. #6
    che vuol dire "non riesco a risolvere"? ricevi errori? posta l'eventuale query che hai usato

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    207
    sono riuscito ad adattarlo con questo script sql server, e funziona bene se l'arario è a cavallo di due date, ma se è nella stessa data mi da 1440 come risultato nella differenza.

    codice:
    SELECT     IdStraord, DATEDIFF(n, ora1, DATEADD(hh, 24, ora4)) - mensa - 360 + OreAss AS differenza, dataIngresso, ora1, ora2, ora3, ora4, dataUscita, mensa,
    questi sono i dati del database SQLServer:

    IdStraord = 1
    differenza = 1440
    dataIngresso = 03/09/2012
    ora1 = 13:00
    ora2 = 00:00
    ora3 = 00:00
    ora4 = 19:00
    dataUscita = 03/09/2012
    mensa = 0
    OreGiornaliere = 360
    OreAss = 0
    Il risultato della differenza dovrebbe essere 0 invece mi da 1440.
    dove sto sbagliando?
    Grazie!!

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.