shoaib Naeem Ответов: 2

Преобразование не удалось при преобразовании даты и/или времени из символьной строки. Тяжесть 16


Когда я выполняю

Выберите datepart(HH,'24:31')

возникает следующая ошибка

Преобразование не удалось при преобразовании даты и/или времени из символьной строки. Тяжесть 16


Как я получаю часы в 24 и выше

заранее спасибо

Что я уже пробовал:

Пожалуйста Его Ургнет

Выберите datepart(HH,'24:31')

2 Ответов

Рейтинг:
2

#realJSOP

Нет такого понятия, как 24-й час. Вы должны использовать 00.

Время измеряется с 00:00 (полночь) до 23:59 (11:59 вечера)


shoaib Naeem

Accutally его рабочее время и сотрудник, и я хочу, чтобы преобразовать его в минуты

Рейтинг:
2

OriginalGriff

24:31 не является допустимым временем: значения SQL datetime (которые ожидает DATEPART) не могут представлять его как время, поэтому вы правильно получаете ошибку - чего вы не делаете только с допустимым временем:

SELECT datepart(HH,'23:31')

Вам нужно будет точно посмотреть, откуда взялась струна, и решить, что вы можете с ней сделать.

Мы ничего не можем предложить - мы понятия не имеем, откуда вы получаете значение '24:31', но есть вероятность, что оно исходит из вашей БД и плохо хранится - вы никогда не должны хранить ничего, кроме истинных строк, как VARCHAR или NVARCHAR - даты, времена, числа: все это должно храниться в "правильных" столбцах, а не в строках. Вероятно, вам нужно сохранить его как количество минут в INT вместо строковых часов и минут.


shoaib Naeem

Accutally его рабочее время и сотрудник, и я хочу, чтобы преобразовать его в минуты

OriginalGriff

Так что храните его как минуты.
Не возитесь с попытками заставить SQL разобраться в этом - вы можете это сделать, но это грязно, так как обработка строк SQL плохая - преобразуйте их в минуты в вашем программном обеспечении для презентаций и сохраните их непосредственно.

shoaib Naeem

хорошо спасибо

OriginalGriff

Всегда пожалуйста!