#sql-server #reporting-services
#sql-server #службы отчетов
Вопрос:
У меня есть две таблицы, из которых я пытаюсь получить разницу в SQL. Таблица A имеет время в следующем формате: 07:40:06, 08:33:34, 13:42:09,
Таблица B имеет тот же формат. Я хочу вернуться в фактическое время, например, 7:40:00 в A и 7:50:00 в B, в результате чего появится новый столбец 00:10:00.
Спасибо,
Комментарии:
1. Взгляните на
DATEDIFF
иDATEADD
.2. Datediff возвращает только минуты или часы или миллисекунды и т.д. Мне это нужно в формате, который я опубликовал выше]
3. «и
DATEADD
» @Trand17. Подсказка: если число секунд между 2 разами равно 160 секундам, и вы добавляете столько секунд до полуночи, какое значение вы получаете?
Ответ №1:
Я признаю, что это немного глупо, но, похоже, работает. Вы могли бы использовать постоянную дату и добавить к ней время в виде строк. Затем вычтите и отформатируйте, как вам нравится. Например: ЧЧ: мм: сс. Это даст результат 00:10:00
DECLARE @contstantDate DATETIME = DATEFROMPARTS(1900,1,1)
DECLARE @date1 DATETIME = @contstantDate '7:40:00'
DECLARE @date2 DATETIME = @contstantDate '7:50:00'
SELECT FORMAT(@date2-@date1, 'HH:mm:ss')