我需要在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, '')
返回输出为1900-01-02 09:00:00.000
(一天+ 9小时)。但是我需要Output作为Hours值,也就是33 Hours
Thanks for the help
SELECT CONVERT(varchar(5),
DATEADD(minute, DATEDIFF(minute, @StartDate, @EndDate), 0), 114)
您可以尝试如下:
DECLARE @time INT = 1980
SELECT LEFT(CONVERT(VARCHAR(10), DATEADD(MINUTE, @time / 60 + (@time % 60), ''),114),5)
我从答案中得到了答案。
SELECT CAST((CAST(((2.72) *100)AS INT) / 60 )+ (CAST((2.72 *100)AS INT) % 60) / 100.0 AS DECIMAL(5,2)).
感谢tinka和Stanislovas Kalašnikovas