首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server:如何避免Datediff格式为小时的负值- Days:HH

SQL Server:如何避免Datediff格式为小时的负值- Days:HH
EN

Stack Overflow用户
提问于 2018-05-22 23:55:03
回答 1查看 35关注 0票数 0

我需要以天为单位的结果:HH格式和以小时为单位的正值。

因为我从下面的查询中得到了负值0Day:-11Hr。这里- ad.notification_date是开始日期,ad.decision_letter是结束日期,Admit_codes ad是表名。

代码语言:javascript
复制
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

我尝试了另外两个查询,如下所示。

代码语言:javascript
复制
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

请让我知道如何才能在天数:Hr格式中获得肯定的结果?

EN

回答 1

Stack Overflow用户

发布于 2018-05-22 23:57:42

假设我的理解是正确的,但是使用ABS,它返回绝对值。所以:

代码语言:javascript
复制
SELECT DATEDIFF(DAY,'20180522','20180520'), --returns -2
       ABS(DATEDIFF(DAY,'20180522','20180520')); --returns 2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50471916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档