Idealmente, avrai bisogno di due campi comunque:
- Memorizzare due data/ora separatamente --OPPURE--
- Memorizza una data/ora e memorizza il tempo trascorso
Esaminando i tuoi requisiti, sceglierei due campi data/ora separati; e calcolare le giornate intere/mezze giornate comprese (sommando/sottraendo) le festività.
Mantieni una tabella di configurazione separata per definire/configurare la durata massima/minima della giornata.
Esegui qualsiasi calcolo sul giorno/ora, all'interno della query, o in alternativa sull'interfaccia utente, sulle azioni dell'utente, se lo desideri.