SQL Server: как избежать отрицательных значений в часах для Datediff в этом формате - Дни: ЧЧ - PullRequest
0 голосов
/ 22 мая 2018

Мне нужен результат в формате Days: HH и положительные значения в часах.

Поскольку я получаю результат с отрицательными значениями в виде 0Day: -11Hr из этого запроса ниже.Здесь - ad.notification_date - дата начала, ad.decision_letter - дата окончания, а Admit_codes объявление - имя таблицы.

convert(varchar(5),DateDiff(s, ad.notification_date,ad.decision_letter)/86400)+' Day: ' 
+convert(varchar(5),DateDiff(s,ad.notification_date,ad.decision_letter)%86400/3600)+' Hr'as DAYs_Open from Admit_codes ad

И я попробовал еще два запроса, как показано ниже.

select
    DateDiff(dd, ad.notification_date, ad.decision_letter) As days,  
    + DateDiff(hh, ad.notification_date, ad.decision_letter) % 24 As hours
from 
    #AG_ADMIT_CODES ad

select 
    datepart(day, ad.decision_letter - ad.notification_date) - 1 as days,
    datepart(hour, ad.decision_letter - ad.notification_date) as hours
from 
    #AG_ADMIT_CODES ad 
where 
    'Days' is not null
    and 'hours' is not null

Пожалуйста, дайте мне знать, как я могу получить положительный результат в формате Days: Hr?

1 Ответ

0 голосов
/ 22 мая 2018

Если я правильно понимаю, но используйте ABS, который возвращает абсолютное значение.Итак:

SELECT DATEDIFF(DAY,'20180522','20180520'), --returns -2
       ABS(DATEDIFF(DAY,'20180522','20180520')); --returns 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...