Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DATEDIFF(小时):SQL中DATETIME的最小格式_Sql_Sql Server_Datetime - Fatal编程技术网

DATEDIFF(小时):SQL中DATETIME的最小格式

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)

我需要以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),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