【发布时间】:2016-05-28 11:31:51
【问题描述】:
这更像是一个解决方案而不是问题。
我查看了许多线程以找到将十进制小时数转换为 'hh:mm' 格式的良好解决方案,但这里和那里只有零碎。这么想,如果它对任何人有用,我会分享我的解决方案。
Mods - 请随时优化/完善我的功能。
【问题讨论】:
标签: sql sql-server data-conversion
这更像是一个解决方案而不是问题。
我查看了许多线程以找到将十进制小时数转换为 'hh:mm' 格式的良好解决方案,但这里和那里只有零碎。这么想,如果它对任何人有用,我会分享我的解决方案。
Mods - 请随时优化/完善我的功能。
【问题讨论】:
标签: sql sql-server data-conversion
--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
【讨论】: