Sql 从日期差异将00:45:00转换为0.45或将01:45:00转换为1.45?
如何从日期差异将00:45:00转换为0.45或01:45:00转换为1.45。我用下面的查询Sql 从日期差异将00:45:00转换为0.45或将01:45:00转换为1.45?,sql,sql-server,Sql,Sql Server,如何从日期差异将00:45:00转换为0.45或01:45:00转换为1.45。我用下面的查询 select cast(datepart(hour, '01:45:00')+datepart(minute, '01:45:00') / 100.00 as decimal(7,4)); 但当得不到与上述相同的精确结果时,差别很大 选择cast(datediff(小时,'00:00:00','01:45:00')+datediff(分钟,'00:00','01:45:00')/100.00作为十进
select cast(datepart(hour, '01:45:00')+datepart(minute, '01:45:00') / 100.00 as decimal(7,4));
但当得不到与上述相同的精确结果时,差别很大
选择
cast(datediff(小时,'00:00:00','01:45:00')+datediff(分钟,'00:00','01:45:00')/100.00作为十进制(7,4))代码>第一个答案似乎是您想要的
如果分解第二个表达式,您将发现:
datediff(minute,'00:00:00','01:45:00')
计算结果为105,而不是45
如果要对日期部分使用算术运算,只需使用分钟:
cast(datediff(minute,'00:00:00','01:45:00') / 60 +
(datediff(minute,'00:00:00','01:45:00') % 60 / 100.0
) as decimal(7, 4)
)
第一个答案似乎就是你想要的
如果分解第二个表达式,您将发现:
datediff(minute,'00:00:00','01:45:00')
计算结果为105,而不是45
如果要对日期部分使用算术运算,只需使用分钟:
cast(datediff(minute,'00:00:00','01:45:00') / 60 +
(datediff(minute,'00:00:00','01:45:00') % 60 / 100.0
) as decimal(7, 4)
)
1.45是指十进制数吗?1:45是1小时加1的3/4,所以可能是1.75乘以1.45,你是说小数吗?1:45是1小时加上1的3/4,所以可能是1.75