Francamente mi sembra un po' complicato capire il tuo codice, ma non capisco perché hai separato sul db i campi ore, minuti e secondi invece di usare i campi di tipo datetime...