将分钟转换为小时sql server

时间:2015-10-20 13:10:08

标签: sql sql-server tsql

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

感谢您的帮助

3 个答案:

答案 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