sql - 如何将分钟转换为 HH :MM format

标签 sql sql-server-2005

我有一个查询,必须以 HH:MM 格式给出 session 记录。

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 .它为某些值提供了良好的结果,而不是为某些值提供了良好的结果。我不知道为什么。例如,请参阅下面的结果图像。 这是给写答案 enter image description here

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

最佳答案

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

关于sql - 如何将分钟转换为 HH :MM format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19374995/

相关文章:

sql - 如何使用动态 SQL 查询结果创建临时表

sql - 对不同服务器/数据库中的表执行 UNPIVOT 失败,出现 'conflicts with the type of other columns' 错误

sql-server-2005 - 如何终止/解决 SQL Server 中长时间运行的更新

SQL Server 2008 - 缩小事务日志 - 有什么自动化方法吗?

Mysql不能分配外键?

sql - 如何查找游标的记录数

sql - SQL Server中Group By、Having和Where子句的执行顺序?

SQL 查询选择两个日期之间的日期

php - 为什么我的 Laravel 查询返回索引号和名称?

mysql - 哪种 SQL 归类用于特殊字符,例如 é?