我有一个表包含日期时间列“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