【问题标题】:Convert decimal hours to 'hh:mm' format - SQL Server将十进制小时数转换为“hh:mm”格式 - SQL Server
【发布时间】:2016-05-28 11:31:51
【问题描述】:

这更像是一个解决方案而不是问题。

我查看了许多线程以找到将十进制小时数转换为 'hh:mm' 格式的良好解决方案,但这里和那里只有零碎。这么想,如果它对任何人有用,我会分享我的解决方案。

Mods - 请随时优化/完善我的功能。

【问题讨论】:

    标签: sql sql-server data-conversion


    【解决方案1】:
    --this will convert 45.50 to '45:30' or -45.50 to '-45:30'
    CREATE FUNCTION [dbo].[GetTimeFromNumericValue](@numerichours numeric(24,6))
    RETURNS varchar(6) --Only string takes negative
    AS
    BEGIN
    
    Declare @returnvalue numeric(24,6) ;
    Declare @left varchar(10);
    Declare @right varchar(10);
    
    If(@numerichours is NULL OR @numerichours = 0.0 )
    Begin
         Return '';
    End
    Else if (@numerichours<0)
    Begin
         set @numerichours = ABS(@numerichours)
         Return '-' + RIGHT('0'+Convert(varchar, FLOOR(@numerichours)),2) +':' +  RIGHT('0'+Convert(varchar,Convert(int,((@numerichours - FLOOR(@numerichours)) * 60))),2)
    End
    Else
    Begin
         Return RIGHT('0'+Convert(varchar, FLOOR(@numerichours)),2) +':' +  RIGHT('0'+Convert(varchar,Convert(int,((@numerichours - FLOOR(@numerichours)) * 60))),2)
    End
    
    Return '';
    
    End
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-24
      • 2023-03-20
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多