sql - SQL。将 datediff 小时数转换为 dd.hh:mm:ss
问题描述
我有一些代码可以在表中最旧的记录之间生成小时数(MIN)
,getdate()
并且正在使用
CONVERT(CHAR(8),DATEADD(SECOND,DATEDIFF(SECOND,MIN(OLDESTRECORD),GETDATE()),0),108)
得到HH:MM:SS
,但是当时间超过 24 小时时,它只显示小时部分。即 30 小时差异显示为 6 小时......我如何让它显示dd.hh:mm:ss
ie 1.06:00:00
解决方案
注意在结束日期未达到开始日期的“时间”的情况
select cast(DATEDIFF(SECOND,MIN(OLDESTRECORD),GETDATE()) / 86400 as varchar(4)) + '.' + CONVERT(CHAR(8),DATEADD(SECOND,DATEDIFF(SECOND,MIN(OLDESTRECORD),GETDATE()) % 86400 ,0),108)
推荐阅读
- reactjs - React Router - 在组件中有条件地返回 404
- javascript - 向被索引的对象添加新消息
- php - 在 for 循环中对自定义字段的值进行排序
- javascript - 单击按钮后在时间范围内调整 div 元素的大小。我使用javascript还是有更简单的方法
- python-3.x - 从部署在 Ubuntu 服务器 mod_wsgi 上的烧瓶应用程序获得一半输出或没有输出
- testing - 黑盒测试和端到端测试有什么区别?
- swift - 为什么我在执行 segue 以显示详细信息时会得到两个连续的视图控制器
- sql - 具有多个条件的 CASE - Teradata/SQL
- c++ - 调用函数时的向量后推调用析构函数
- python - 如何计算python中每一列中缺失的数据?