Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Somma due orari

  1. #1

    Somma due orari

    Ciao a tutti, spero che qualcuno possa aiutarmi.
    Devo sommare due orari in una query ma non ci riesco (la somma è inferiore a 24 ore) .
    Ho due orari che sono il risultato di una formula condizionale (risultato da condizioni IIF e Switch).
    Il problema è che nella query le formule mi restituscono dei numeri che non riesco a formattare come orario, es.: 0,166666666666667 equivalente a 04:00:00 ore, nonostante lo imposti come "ora estesa" nella quesry.
    Quando poi uso dateadd, mi da errore con questi valori.
    Se faccio gli stessi calcoli e le stesse formule nelle maschere, riesco a dare la formattazione nel formato orario: hh:mm:ss come "ora estesa"

    pensavo di usare la funzione format ma non riesco a trovare la sintassi, ammesso che la posso usare.
    ciao e grazie in anticipo.
    Giorgio.

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Non specifichi nianche linguaggio/programma/contesto...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Scusami hai ragione.
    Sto usando Access2007.
    Allego la formula solo per far vedere che con "format" e "Ora Estesa" sono riuscito a formattare la data come volevo, poi nelle proprietà del campo, all'interno della query, ho impostato "ora estesa".
    Detto questo, però, la visualizzazione l'ho ottenuta ma non ci faccio nulla perchè DateAdd non funziona. Invece nella maschera riesco a fare tutti i calcoli che voglio, dopo che ci ho copiato la formula qui sotto senza - la parte "format" e "data estesa" - perché basta impostare le proprietà "ora estesa" e i calcoli vengono eseguiti senza problemi.

    Prima1-F1: Format (IIf([Orario1pre_On]>[Orario1pre_Off];Switch([Orario1pre_Off]<=[F1_on];0;[Orario1pre_Off] Between [F1_on] And [F1_off];DateDiff("s";[F1_on];[Orario1pre_Off])/86400;[Orario1pre_Off]>=[F1_off];11/24)+Switch([Orario1pre_On]<=[F1_on];11/24;[Orario1pre_On] Between [F1_on] And [F1_off];DateDiff("s";[Orario1pre_On];[F1_off])/86400;[Orario1pre_On]>=[F1_off];0);IIf([Orario1pre_On]<=[F1_on] And [Orario1pre_Off]>=[F1_off];11/24;IIf([Orario1pre_On]<=[F1_on] And [Orario1pre_Off] Between [F1_on] And [F1_off];DateDiff("s";[F1_on];[Orario1pre_Off])/86400;IIf([Orario1pre_On]>=[F1_on] And [Orario1pre_Off]<=[F1_off];DateDiff("s";[Orario1pre_on];[Orario1pre_off])/86400;IIf([Orario1pre_On] Between [F1_on] And [F1_off] And [Orario1pre_Off]>=[F1_off];DateDiff("s";[Orario1pre_on];[F1_off])/86400;0)))));"Ora estesa")

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.