Así como tú dices,, entonces debes declarar el campo de tu tabla en la base de datos del tipo "TIME" , pues así sólo guarda horas, minutos y segundos..
Ahora el campo tipo "DATE", pues guarda fechas, y la combinación de los dos es "TIMESTAMP" que guarda fecha y horas, minutos y segundos...
Teniendo en cuenta la explicación anterior.....
El error es el siguiente:
Código Delphi
[-]
BDMasdata.TablePrueba.FieldByName('HORA').AsDateTime:= Frac(DateTimePicker1.Time);
debe ser:
Código Delphi
[-]
BDMasdata.TablePrueba.FieldByName('HORA').AsTime:= Frac(DateTimePicker1.Time);
Suerte..