sql - 如何在 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
解决方案
如果您的 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 |
笔记
反斜杠\
可以从format
like hr
, min
, s
... 中转义关键字,然后将其显示为原始单词。
推荐阅读
- sql - 收入和支出表的损益
- javascript - i18n 中的嵌套命名空间
- ios - 玩 ARKit,想知道如何更改菜单的选项
- python-3.x - 测试引用层中包含的模块的 Lambda 函数
- svg - 响应式全宽 svg 徽标
- java - 使用计数排序按任何给定字段对对象数组进行排序
- python - 我该如何解决这个不和谐的组件类型错误:按钮类型的对象不是 JSON 可序列化的?
- java - RestTemplate - 如何以正确的方式显示 HttpServerErrorException - 异常(RestClientException,HttpStatusCodeException)
- google-api - 如何使用 API 从 google play 控制台获取用户和权限列表
- javascript - JS 是否可以自动在数组的所有值中使用 switch case?