获取十进制sql server中的datediff小时数
我需要查询以获取十进制值表示的总小时数 这是我目前的疑问: 尽管@total参数是一个小数,但查询给了我整数值。 我不知道如何得到小数点获取十进制sql server中的datediff小时数,sql,sql-server,decimal,datediff,Sql,Sql Server,Decimal,Datediff,我需要查询以获取十进制值表示的总小时数 这是我目前的疑问: 尽管@total参数是一个小数,但查询给了我整数值。 我不知道如何得到小数点 请帮助我,并提前向您表示感谢。尝试除以60.0。这将提供所需的精度 整数除以整数将返回整数。要避免这种情况,只需将分子或分母设为浮点数 示例 declare @start as time; declare @end as time; declare @total as decimal(18, 2); set @start = '17:00:00' set @
请帮助我,并提前向您表示感谢。尝试除以60.0。这将提供所需的精度 整数除以整数将返回整数。要避免这种情况,只需将分子或分母设为浮点数 示例
declare @start as time;
declare @end as time;
declare @total as decimal(18, 2);
set @start = '17:00:00'
set @end = '18:30:00'
set @total = datediff(minute, @start, @end)/60.0
print @total
返回
1.50
DateDiff始终返回int,因此以分钟为单位计算DateDiff,然后除以60.0。小数点是必需的
set @total = datediff(minute, @start, @end)/60.0
试试/60.0这将提供所需的精度非常感谢您,先生,您给我的代码非常有用!非常欢迎。Datediff返回一个整数。当你将其除以一个整数(60)时,你得到一个整数作为结果。如果希望结果为十进制,则需要根据@JohnCappelletti的注释除以十进制(例如60.0)
set @total = datediff(minute, @start, @end)/60.0