将分钟转换为小时SQL服务器



我需要在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

最新更新