If you need CAST, then that implies you stored the number of seconds as a string - which is a poor idea as it means you can't use the values directly. And if you need to cast the start date, than that's potentially even worse as the cast could fail, depending on what is stored in the DB.
So change your DB, store the date as a DATETIME value, and the seconds as an INT
Your SQL then becomes pretty trivial:
cmd.CommandText = "SELECT SUM(Seconds) FROM MyTable WHERE startDate BETWEEN @BEG AND @END"
cmd.Parameters.AddWithValue("@BEG", DateTimePicker1.Value.Date)
cmd.Parameters.AddWithValue("@END", DateTimePicker2.Value.Date)
temp_sum = cmd.ExecuteScalar()