У меня есть startDateTime и endDateTime. Я пытаюсь найти общую разницу между ними в часах. Я использую DATEDIFF(), чтобы получить разницу в часах (но в формате минут, поэтому десять часов 30 минут будут 630 минут). Я разделил на 60, чтобы получить общий остаток (поскольку использование дней округляло до 1 на основе граничных правил).
Дата начала выглядит как 2020-12-03 10:00:00.000, то же самое с датой окончания с точки зрения форматирования
SELECT DATEDIFF(minute,startDateTime,endDateTime) / 60.0 AS [CalculatedDate]
FROM [dbo].[ATable]
Производит
CalculatedDate
-------------
10.50000
9.500000
7.500000
Пытаюсь понять, как убрать конечные нули до 10,5, 9,5 и т. д.
Пробовал круглые, литые и некоторые другие вещи.


Хочешь format()?
SELECT
FORMAT(
DATEDIFF(minute,startDateTime,endDateTime) / 60.0,
'#.#####'
) AS [CalculatedDate]
FROM [dbo].[ATable]
Это позволяет использовать до 5 десятичных цифр. Отображаются только значащие цифры (поэтому обычно 10.50000 отображается как 10.5). Если имеется более 5 значащих десятичных цифр, значение округляется до ближайшего 5-го десятичного знака.
Я должен точно указать, что это возвращает строковый тип данных.
Вы можете преобразовать в формат фиксированной длины, который вы хотите:
SELECT CONVERT(DECIMAL(10, 1), DATEDIFF(minute, startDateTime, endDateTime) / 60.0) AS [CalculatedDate]
FROM [dbo].[ATable]
SELECT CONVERT(DECIMAL(10, 2), DATEDIFF(minute,startDateTime,endDateTime) / 60.0) AS [CalculatedDate] <--Это работает, просто пропущена скобка. Спасибо за ваше время
сообщение об ошибке, вы уверены, что написали его правильно?