Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
获取十进制sql server中的datediff小时数_Sql_Sql Server_Decimal_Datediff - Fatal编程技术网

获取十进制sql server中的datediff小时数

获取十进制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 @

我需要查询以获取十进制值表示的总小时数

这是我目前的疑问: 尽管@total参数是一个小数,但查询给了我整数值。 我不知道如何得到小数点


请帮助我,并提前向您表示感谢。

尝试除以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