首页 > 解决方案 > 如何在 SQL Server 中查找小时、分钟和秒(所有结果)的时差

问题描述

如何在所有条件下查找时差,例如

如果只差几分钟

 49 mintus

如果小时差

 1 hour 20 minutes

我在尝试

SELECT DATEDIFF(MINUTE,'2018-08-09 10:16:49.000','2018-08-09 11:14:40.000') AS Diff  

但这仅在几分钟内显示

我也试过这个

DECLARE @StartTime datetime = '2018-08-09 10:16:49.000',
        @EndTime datetime = '2018-08-09 12:44:05.000'
SELECT CAST(@EndTime - @StartTime as Time) As TimeDiffere

输出 :02:27:16.0000000

但是我要2hr 27mins 16Sec

标签: sqlsql-serverdatabasedatetimetime

解决方案


如果您的 SQL-server 版本高于 2012,您可以尝试使用格式化功能。

CREATE TABLE T(
 StartTime datetime,
  EndTime datetime
);

insert into t values ('2018-08-09 10:16:49.000','2018-08-09 12:44:05.000')

查询 1

SELECT format(EndTime - StartTime ,'hh\hr mm\min\s ss\Sec') As TimeDiffere
FROM T

结果

|       TimeDiffere |
|-------------------|
| 02hr 27mins 16Sec |

笔记

反斜杠\ 可以从formatlike hr, min, s... 中转义关键字,然后将其显示为原始单词。


推荐阅读