Natürlich, es gibt viele Möglichkeiten. Du kannst auch eine ComboBox mit den Werten 0 bis 59 füllen und damit die Sekunden auswählen, eine gleichartige für die Minuten und eine ähnliche für die Stunden. Aber warum willst du das so umständlich machen?
DateTimePicker kann mit DateTimePickerFormat i.V.m. Format und CustomFormat passend gesetzt werden. Mit DateTime.TryParse kann auch irgendein String zugewiesen werden.
Aber der entscheidende Hinweis ist: Du musst grundsätzlich mit einer DateTime-Variablen arbeiten. Die kannst du aus DateTimePicker.Value oder mit DateTime.TryParse aus irgendeinem String holen oder mit DateTime-Methoden aus etwas anderem errechnen. So etwas kann jederzeit einem DbParameter übergeben werden.
Oder habe ich dein Problem völlig falsch verstanden?
Jürgen
/Edit
Die konkrete Antwort ist in meinem langen Text etwas untergegangen. DateTime.Parse(ComboBox.SelectedText) oder auch TimeSpan.Parse(ComboBox.SelectedText) liefert den entscheidenden Wert.