DATEDIFF(小时):SQL中DATETIME的最小格式
我需要以HH:MM格式而不是十进制格式获取两个日期时间之间的时间差 例如: 我需要时间差28:23,不是小数。我找到了相关的文章,但不是最新的格式。任何建议您可以尝试下面的方法DATEDIFF(小时):SQL中DATETIME的最小格式,sql,sql-server,datetime,Sql,Sql Server,Datetime,我需要以HH:MM格式而不是十进制格式获取两个日期时间之间的时间差 例如: 我需要时间差28:23,不是小数。我找到了相关的文章,但不是最新的格式。任何建议您可以尝试下面的方法 DECLARE @D1 DATETIME = '2019-11-18 06:00:00', @D2 DATETIME = '2019-11-19 10:23:00' select convert(varchar(5),DateDiff(s, @D1, @D2)/3600)+':'+convert(varchar(5)
DECLARE @D1 DATETIME = '2019-11-18 06:00:00',
@D2 DATETIME = '2019-11-19 10:23:00'
select convert(varchar(5),DateDiff(s, @D1, @D2)/3600)+':'+convert(varchar(5),DateDiff(s, @D1, @D2)%3600/60)
输出
col
28:23
在这个例子中,我得到了持续时间的-ve值。请检查
DECLARE@D1-DATETIME='2019-11-18 11:22:45.277',@D2-DATETIME='2019-11-18 12:09:35.103'选择concat(datediff(hour,@D1,@D2),':',',cast(round)(cast(datediff(second,@D1,@D2)/3600.00作为十进制(10,5))-cast(datediff(hour,@D1,@D2作为int))*60,1作为int))
这应该可以工作声明@D1 DATETIME='2019-11-18 11:22:45.277',@D2 DATETIME='2019-11-18 12:09:35.103'选择convert(varchar(5),DateDiff(s,@D1,@D2)/3600+':'+convert(varchar(5),DateDiff(s,@D1,@D2)%3600/60)
@Shalem谢谢你的评论answer@Shalem-那是我的工作。谢谢,与提供/建议的URL相比,我的格式有偏差。为什么我的查询以相关信息而不是确切答案结束
col
28:23