OriginalGriff
24:31 не является допустимым временем: значения SQL datetime (которые ожидает DATEPART) не могут представлять его как время, поэтому вы правильно получаете ошибку - чего вы не делаете только с допустимым временем:
SELECT datepart(HH,'23:31')
Вам нужно будет точно посмотреть, откуда взялась струна, и решить, что вы можете с ней сделать.
Мы ничего не можем предложить - мы понятия не имеем, откуда вы получаете значение '24:31', но есть вероятность, что оно исходит из вашей БД и плохо хранится - вы никогда не должны хранить ничего, кроме истинных строк, как VARCHAR или NVARCHAR - даты, времена, числа: все это должно храниться в "правильных" столбцах, а не в строках. Вероятно, вам нужно сохранить его как количество минут в INT вместо строковых часов и минут.
OriginalGriff
Так что храните его как минуты.
Не возитесь с попытками заставить SQL разобраться в этом - вы можете это сделать, но это грязно, так как обработка строк SQL плохая - преобразуйте их в минуты в вашем программном обеспечении для презентаций и сохраните их непосредственно.