我需要在sql server中将分钟转换为小时。
我使用了以下逻辑来做到这一点。
CAST(REPLACE(LEFT(CONVERT(varchar(10), DATEADD(MINUTE, 19.80 *100, ''), 114),5),':','.') AS Decimal(5,2)) AS tpschedhours
我的预期输出为33
小时(1980分钟,以小时为单位)
但我的输出为9小时。我发现问题出现了,因为DATEADD(MINUTE,1980, '')
将ouptut作为1900-01-02 09:00:00.000
返回(一天+9小时)。但我需要输出为小时值,即33小时
感谢您的帮助
答案 0 :(得分:1)
您可以尝试以下方式:
DECLARE @time INT = 1980
SELECT LEFT(CONVERT(VARCHAR(10), DATEADD(MINUTE, @time / 60 + (@time % 60), ''),114),5)
答案 1 :(得分:1)
SELECT CONVERT(varchar(5),
DATEADD(minute, DATEDIFF(minute, @StartDate, @EndDate), 0), 114)
答案 2 :(得分:0)
我从答案中得到了解决方案。
SELECT CAST((CAST(((2.72) *100)AS INT) / 60 )+ (CAST((2.72 *100)AS INT) % 60) / 100.0 AS DECIMAL(5,2)).
感谢tinka和StanislovasKalašnikovas