#sql #sql-server #sql-server-2008
#sql #sql-сервер #sql-server-2008
Вопрос:
При выполнении этого запроса мне нужен вывод путем объединения
DATEDIFF(mm, StartTime, EndTime) 'Minutes'
Я получаю эту ошибку
Ошибка преобразования при преобразовании значения varchar ‘Minutes’ в тип данных int
Мне нужно получить результат, подобный 15 Minutes
.
(15 представляет разницу между временем начала и окончания)
Ответ №1:
Функция DATEDIFF возвращает значения a INT. Поэтому вам нужно преобразовать его в строку.
Попробуйте что-то вроде
SELECT CAST(DATEDIFF(mm,StartTime, EndTime) AS NVARCHAR(2)) 'Minutes'
Очевидно, вы можете использовать другой тип строки назначения, такой как char nchar и т.д… И используйте функцию CONVERT вместо CAST .
Ответ №2:
Используйте CONCAT()
:
select concat(DATEDIFF(minute, StartTime, EndTime), 'Minutes')
CONCAT()
будет удобно преобразовывать аргументы в строки. Также обратите внимание, что это minute
объясняется . Я рекомендую использовать полное имя при использовании функций даты.