This function is used to calculate the actual unit of conversion for time.
This is a most advanced generic function , which suppose to return values for 42 combinations.
Regards,
Vignesh Arulmani
This function is used to calculate the actual unit of conversion for time.
This is a most advanced generic function , which suppose to return values for 42 combinations.
Regards,
Vignesh Arulmani
create function fn_calc_uoc_time(@FromConversionUnit varchar(64),@ToConversionUnit varchar(64),@UnitValue float) returns float as begin --TIME declare @returnvalue float select @returnvalue = case when @FromConversionUnit = 'day' and @ToConversionUnit = 'hour' then @UnitValue * 24.0 when @FromConversionUnit = 'day' and @ToConversionUnit = 'microsecond' then @UnitValue * 86400000000.0 when @FromConversionUnit = 'day' and @ToConversionUnit = 'millisecond' then @UnitValue * 86400000.0 when @FromConversionUnit = 'day' and @ToConversionUnit = 'minute' then @UnitValue * 1440.0 when @FromConversionUnit = 'day' and @ToConversionUnit = 'second' then @UnitValue * 86400.0 when @FromConversionUnit = 'day' and @ToConversionUnit = 'week' then @UnitValue * 0.1428571428571429 when @FromConversionUnit = 'hour' and @ToConversionUnit = 'day' then @UnitValue * 0.0416666666666667 when @FromConversionUnit = 'hour' and @ToConversionUnit = 'microsecond' then @UnitValue * 3600000000.0 when @FromConversionUnit = 'hour' and @ToConversionUnit = 'millisecond' then @UnitValue * 3600000.0 when @FromConversionUnit = 'hour' and @ToConversionUnit = 'minute' then @UnitValue * 60.0 when @FromConversionUnit = 'hour' and @ToConversionUnit = 'second' then @UnitValue * 3600.0 when @FromConversionUnit = 'hour' and @ToConversionUnit = 'week' then @UnitValue * 0.005952380952381 when @FromConversionUnit = 'microsecond' and @ToConversionUnit = 'day' then @UnitValue * 1.157407407407407e-11 when @FromConversionUnit = 'microsecond' and @ToConversionUnit = 'hour' then @UnitValue * 2.777777777777778e-10 when @FromConversionUnit = 'microsecond' and @ToConversionUnit = 'millisecond' then @UnitValue * 0.001 when @FromConversionUnit = 'microsecond' and @ToConversionUnit = 'minute' then @UnitValue * 1.666666666666667e-8 when @FromConversionUnit = 'microsecond' and @ToConversionUnit = 'second' then @UnitValue * 0.000001 when @FromConversionUnit = 'microsecond' and @ToConversionUnit = 'week' then @UnitValue * 1.653439153439153e-12 when @FromConversionUnit = 'millisecond' and @ToConversionUnit = 'day' then @UnitValue * 1.157407407407407e-8 when @FromConversionUnit = 'millisecond' and @ToConversionUnit = 'hour' then @UnitValue * 2.777777777777778e-7 when @FromConversionUnit = 'millisecond' and @ToConversionUnit = 'microsecond' then @UnitValue * 1000.0 when @FromConversionUnit = 'millisecond' and @ToConversionUnit = 'minute' then @UnitValue * 1.666666666666667e-5 when @FromConversionUnit = 'millisecond' and @ToConversionUnit = 'second' then @UnitValue * 0.001 when @FromConversionUnit = 'millisecond' and @ToConversionUnit = 'week' then @UnitValue * 1.653439153439153e-9 when @FromConversionUnit = 'minute' and @ToConversionUnit = 'day' then @UnitValue * 6.944444444444444e-4 when @FromConversionUnit = 'minute' and @ToConversionUnit = 'hour' then @UnitValue * 0.0166666666666667 when @FromConversionUnit = 'minute' and @ToConversionUnit = 'microsecond' then @UnitValue * 60000000.0 when @FromConversionUnit = 'minute' and @ToConversionUnit = 'millisecond' then @UnitValue * 60000.0 when @FromConversionUnit = 'minute' and @ToConversionUnit = 'second' then @UnitValue * 60.0 when @FromConversionUnit = 'minute' and @ToConversionUnit = 'week' then @UnitValue * 9.920634920634921e-5 when @FromConversionUnit = 'second' and @ToConversionUnit = 'day' then @UnitValue * 1.157407407407407e-5 when @FromConversionUnit = 'second' and @ToConversionUnit = 'hour' then @UnitValue * 2.777777777777778e-4 when @FromConversionUnit = 'second' and @ToConversionUnit = 'microsecond' then @UnitValue * 1000000.0 when @FromConversionUnit = 'second' and @ToConversionUnit = 'millisecond' then @UnitValue * 1000.0 when @FromConversionUnit = 'second' and @ToConversionUnit = 'minute' then @UnitValue * 0.0166666666666667 when @FromConversionUnit = 'second' and @ToConversionUnit = 'week' then @UnitValue * 1.653439153439153e-6 when @FromConversionUnit = 'week' and @ToConversionUnit = 'day' then @UnitValue * 7.0 when @FromConversionUnit = 'week' and @ToConversionUnit = 'hour' then @UnitValue * 168.0 when @FromConversionUnit = 'week' and @ToConversionUnit = 'microsecond' then @UnitValue * 604800000000.0 when @FromConversionUnit = 'week' and @ToConversionUnit = 'millisecond' then @UnitValue * 604800000.0 when @FromConversionUnit = 'week' and @ToConversionUnit = 'minute' then @UnitValue * 10080.0 when @FromConversionUnit = 'week' and @ToConversionUnit = 'second' then @UnitValue * 604800.0 when @FromConversionUnit = @ToConversionUnit then @UnitValue * 1.0 end return(@returnvalue) end go --examples select dbo.fn_calc_uoc_time('day','hour',10) select dbo.fn_calc_uoc_time('day','microsecond',10) select dbo.fn_calc_uoc_time('day','millisecond',10) select dbo.fn_calc_uoc_time('day','minute',10) select dbo.fn_calc_uoc_time('day','second',10) select dbo.fn_calc_uoc_time('day','week',10) select dbo.fn_calc_uoc_time('hour','day',10) select dbo.fn_calc_uoc_time('hour','microsecond',10) select dbo.fn_calc_uoc_time('hour','millisecond',10) select dbo.fn_calc_uoc_time('hour','minute',10) select dbo.fn_calc_uoc_time('hour','second',10) select dbo.fn_calc_uoc_time('hour','week',10) select dbo.fn_calc_uoc_time('microsecond','day',10) select dbo.fn_calc_uoc_time('microsecond','hour',10) select dbo.fn_calc_uoc_time('microsecond','millisecond',10) select dbo.fn_calc_uoc_time('microsecond','minute',10) select dbo.fn_calc_uoc_time('microsecond','second',10) select dbo.fn_calc_uoc_time('microsecond','week',10) select dbo.fn_calc_uoc_time('millisecond','day',10) select dbo.fn_calc_uoc_time('millisecond','hour',10) select dbo.fn_calc_uoc_time('millisecond','microsecond',10) select dbo.fn_calc_uoc_time('millisecond','minute',10) select dbo.fn_calc_uoc_time('millisecond','second',10) select dbo.fn_calc_uoc_time('millisecond','week',10) select dbo.fn_calc_uoc_time('minute','day',10) select dbo.fn_calc_uoc_time('minute','hour',10) select dbo.fn_calc_uoc_time('minute','microsecond',10) select dbo.fn_calc_uoc_time('minute','millisecond',10) select dbo.fn_calc_uoc_time('minute','second',10) select dbo.fn_calc_uoc_time('minute','week',10) select dbo.fn_calc_uoc_time('second','day',10) select dbo.fn_calc_uoc_time('second','hour',10) select dbo.fn_calc_uoc_time('second','microsecond',10) select dbo.fn_calc_uoc_time('second','millisecond',10) select dbo.fn_calc_uoc_time('second','minute',10) select dbo.fn_calc_uoc_time('second','week',10) select dbo.fn_calc_uoc_time('week','day',10) select dbo.fn_calc_uoc_time('week','hour',10) select dbo.fn_calc_uoc_time('week','microsecond',10) select dbo.fn_calc_uoc_time('week','millisecond',10) select dbo.fn_calc_uoc_time('week','minute',10) select dbo.fn_calc_uoc_time('week','second',10)