Confronto tra ore e approssimazione

di il
18 risposte

Confronto tra ore e approssimazione

Ho una tabella ora con i seguenti campi: ID, Data, OraEntrata, OraUscita.

Vorrei che OraUscita fosse valido solo se è maggiore o uguale a ora entrata, ho provato con  >= in Valido se, ma niente da fare!

Successivamente ho fatto la seguente query:

SELECT Ore.ID, Ore.OraEntrata, Ore.OraUscita, DateDiff("h",OraEntrata,OraUscita) AS Ore
FROM Ore;

Molto semplice, dove aggiungo il campo ore. Solo che se metto come OraEntrata=12:00 e OraUscita=12:30 il risultato è zero, invece vorrei che il risultato fosse 0,5. Ho provato tutti i tipi di formato, ma niente da fare. 

Potreste darmi una mano?

18 Risposte

  • Re: Confronto tra ore e approssimazione

    Uhm… orario: hh:mm:ss

    DateDiff("h",OraEntrata,OraUscita) stai chiedendo la differenza tra hh

    Ergo la differenza tra l'ora 12 e l'ora 12 quanto dovrebbe essere? 

  • Re: Confronto tra ore e approssimazione

    30/05/2023 - sihsandrea ha scritto:


    Uhm… orario: hh:mm:ss

    DateDiff("h",OraEntrata,OraUscita) stai chiedendo la differenza tra hh

    Ergo la differenza tra l'ora 12 e l'ora 12 quanto dovrebbe essere? 

    Ho Risolto così. Mi rimane da capire come confrontare le ore però.

    SELECT Ore.ID, Ore.OraEntrata, Ore.OraUscita, DateDiff("n",OraEntrata,OraUscita)/60 AS Ore
    FROM Ore;
    
  • Re: Confronto tra ore e approssimazione

    30/05/2023 - Nat ha scritto:


    30/05/2023 - sihsandrea ha scritto:


    Uhm… orario: hh:mm:ss

    DateDiff("h",OraEntrata,OraUscita) stai chiedendo la differenza tra hh

    Ergo la differenza tra l'ora 12 e l'ora 12 quanto dovrebbe essere? 

    Ho Risolto così. Mi rimane da capire come confrontare le ore però.

    SELECT Ore.ID, Ore.OraEntrata, Ore.OraUscita, DateDiff("n",OraEntrata,OraUscita)/60 AS Ore
    FROM Ore;
    

    Se non ti interessano i secondi devi rapportare tutto a minuti altrimenti ai secondi… adesso puoi confrontare e avere la differenza

    Con DateDiff un esempio potrebbe essere questo:

    In questo caso il risultato sarà posto in un campo numerico con 2 decimali dove la parte intera rappresenta le ore e i decimali i minuti:

    Ma tutto dipende da come vuoi formattare il risultato del confronto…. etc etc etc …

    N.B. in questo esempio avrai il problema quando arrivi alle ore 24:00 in quanto dovrai impostare l'ora in 00:00 e quando vai a fare il confronto per lui le 00:00 non sono le 24:00 ma l'inizio di un nuovo giorno che va sempre dalle ore 00:00 alle 23:59

  • Re: Confronto tra ore e approssimazione

    Grazie, ma inserendo il tuo codice mi da un errore di sintassi

    CDbl(Int(DateDiff("n",OraEntrata,OraUscita)/60) & "," & DateDiff("n",OraEntrat],OraUscita) Mod 60
  • Re: Confronto tra ore e approssimazione

    30/05/2023 - Nat ha scritto:


    Grazie tante, come al solito sei impeccabile!

    Solo che inserendo il tuo codice mi da un errore di sintassi: ecco

    CDbl(Int(DateDiff("n",OraEntrata,OraUscita)/60) & "," DateDiff("n",OraEntrata,OraUscita) Mod 60) AS Ore

    Non so dove lo devi inserire…. da Vba ? 

    qui manca una & 

    /60) & "," & DateDiff("n",

  • Re: Confronto tra ore e approssimazione

    Grazie ho risolto!

  • Re: Confronto tra ore e approssimazione

    Mannaggia ho un problema ora! Scusami tanto. Il codice funziona ma la risposta è la seguente: 

    Dove sbaglio? Cioè in pratica invece di 8,30 esce 8,3; è chiaro che sarebbe meglio per la lettura 8,30.

     CDbl(Int(DateDiff("n",OraEntrata,OraUscita)/60)& "," & DateDiff("n",OraEntrata,OraUscita) Mod 60)
  • Re: Confronto tra ore e approssimazione

    Controlla la formattazione. Dovrebbe essere "nn" non ricordo… in giro trovi i formati data…

  • Re: Confronto tra ore e approssimazione

    30/05/2023 - Nat ha scritto:


    Mannaggia ho un problema ora! Scusami tanto. Il codice funziona ma la risposta è la seguente: 

    Dove sbaglio? Cioè in pratica invece di 8,30 esce 8,3; è chiaro che sarebbe meglio per la lettura 8,30.

     CDbl(Int(DateDiff("n",OraEntrata,OraUscita)/60)& "," & DateDiff("n",OraEntrata,OraUscita) Mod 60)

    Se devi visualizzarlo nella Query puoi impostare le propietà del campo della Query:

  • Re: Confronto tra ore e approssimazione

    No. In pratica il compo ore lo creo con una query. Ho la tabella ore e poi con questa query creo la colonna calcolata. Dovrei specificare il tipo nella query? 

  • Re: Confronto tra ore e approssimazione

    30/05/2023 - Nat ha scritto:


    No. In pratica il compo ore lo creo con una query. Ho la tabella ore e poi con questa query creo la colonna calcolata. Dovrei specificare il tipo nella query?

    Perdonami, abbi pietà, ma non ti ho capito … alla mia veneranda età devi farmi un disegnino , please … ;)

  • Re: Confronto tra ore e approssimazione

    In pratica fai conto che ho una tabella ore con ID, ora entrata e ora uscita. Poi ho fatto una query in cui prendo questi campi e creo il campo ore con l espressione che mi hai suggerito. 

    Cioè scrivo la tua esoressione e poi scrivo AS Ore. La domanda è: il tipo, ovvero ora breve come formato, cioè senza secondi, dove lo scrivo?

  • Re: Confronto tra ore e approssimazione

    Io lo scriverei nella Tabella ore

    Esempio:

    Ma quante ne vuoi sapere ???  ;))

  • Re: Confronto tra ore e approssimazione

    L' fatto ahhaa! Grandeeee. Grazie per la pazienza .

Devi accedere o registrarti per scrivere nel forum
18 risposte