如何在SQL Server中将两个以十进制形式存储的时间值相加

问题描述 投票:1回答:2

我需要添加两列将时间值存储为小数例:1.)8.30 + 0.32 = 9.02(输出应为9.03而不是8.62)

上述示例工作正常,并且是以下SQL的实际输出。

我编写了下面的SQL,该SQL主要能正常工作,但在少数情况下,添加不适当的内容

示例:3.57 + 5.25 = 18.44

SELECT
case when B.Column_B is null then A.Column_A
when B.Column_B is not null then 
replace(CONVERT(varchar(5), 
DATEADD(ss,(SUM((DATEPART(hh, replace(isnull(a.Column_A,0.00),'.',':'))*3600) + (DATEPART(mi,replace(isnull(a.Column_A,0.00),'.',':'))*60)) +
SUM((DATEPART(hh, replace(isnull(b.Column_B,0.00),'.',':'))*3600) + (DATEPART(mi,replace(isnull(b.Column_B,0.00),'.',':'))*60))),0),108) ,':','.')
End as "Total_Hours" 

在上述情况下,我无法找到问题所在。这里有什么问题吗,还是有更好的方法来处理此添加项

sql-server time type-conversion sqldatatypes azure-sql-managed-instance
2个回答
2
投票

尝试一下:


0
投票

代码

© www.soinside.com 2019 - 2024. All rights reserved.