sql – 如何在两个日期之间显示小时和分钟

我有一个表包含日期时间列“StartTime”和“CompleteTime”.最初,completeTime列将为NULL,直到该过程完成.现在我的要求是显示小时和分钟,如下所示

输出:
例:2:01小时
(这表示“2”表示小时,“01”表示分钟)

我试过如下:

Declare @StartDate dateTime = '2016-03-31 04:59:11.253'
Declare @EndDate dateTime = GETUTCDATE()

SELECT REPLACE(CONVERT(VARCHAR,CAST(DATEDIFF(second, @StartDate, 
ISNULL(GETUTCDATE(),@EndDate)) / 36000.0 AS DECIMAL(9,2))) + ' hr','.',':')

输出:

0:05 hr

要求输出:

0:32 hr

注意:嗨,同时给出负标记,请检查我的查询一次.我已经提到了一些与此相关的链接,但它不起作用.

最佳答案 试试这个

DECLARE @STARTDATE DATETIME = '2016-03-31 04:59:11.253'
DECLARE @ENDDATE DATETIME = GETUTCDATE()

SELECT CONVERT(VARCHAR(10),DATEDIFF(MINUTE, @STARTDATE, @ENDDATE)/60)+':'+CONVERT(VARCHAR(10),DATEDIFF(MINUTE, @STARTDATE, @ENDDATE)%60)+' hr' AS DIFF

结果:

Diff
0:52 hr

差异超过24小时也会处理这个问题

72:56 hr
点赞