这更像是一个解决方案,而不是问题。
我看了很多线程,找到了一个很好的解决方案,可以将十进制小时转换为'hh:mm'格式,但只是在这里和那里得到了点点滴滴。我想,如果它对任何人都有用,我会分享我的解决方案。
Mods - 请随意优化/优化我的功能。
答案 0 :(得分:0)
--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