如何将分钟转换为HH:MM格式

时间:2013-10-15 06:56:37

标签: sql sql-server-2005

我有查询,必须将会议记录作为HH:MM格式。

SELECT (cast(SUM(convert(int,total)) / 60  as varchar(5))+':' + 
        RIGHT('0' +cast(sum(convert(int,total) % 60) as varchar(2)),2)) 
FROM (SELECT  CASE(clnt_cntLngth)
          WHEN 0 THEN '15'
          WHEN 1 THEN '30'
          WHEN 2 THEN '60'
          WHEN 3 THEN '120'
          WHEN 4 THEN '300'
          ELSE '0' END as total  from dbo.clientInfo) as tbl`

来自here。它为某些值提供了良好的结果,而不是某些值。我不知道为什么。例如,见下面的结果图像。 这是写作ans enter image description here

这是错误的输出enter image description here 这些之间的区别。任何人都可以建议更多的方法来做到这一点的确切输出。我什么都没改变。第一个是写答案,第二个必须是1点,但它显示1:60。

1 个答案:

答案 0 :(得分:1)

CREATE FUNCTION [dbo].[IntToMinutes]
(
    @m int
)
RETURNS nvarchar(20)
AS  
BEGIN

    DECLARE @c datetime
    DECLARE @c1 datetime
    SELECT @c =dateadd(mi,0,'00:00')              
    select @c1 = dateadd(mi,@m,'00:00')         

     return CONVERT(varchar(10),DATEDIFF(hh, @c, @c1) ) + ':' +
     CONVERT(varchar(10),DATEDIFF(mi,DATEADD(hh,DATEDIFF(hh, @c, @c1),@c),@c1) )
    end