Требуется вывод путем объединения DATEDIFF(hh, startTime, EndTime) ‘Минут’ в SQL Server

#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 объясняется . Я рекомендую использовать полное имя при использовании функций даты.