我希望此函数采用日期时间并返回以小数表示的时间.EG - 2:33 PM将返回14.55
ALTER FUNCTION [dbo].[GetTimeAsDecimal](
@DateTime as datetime
) RETURNS decimal
AS
BEGIN
DECLARE @hour decimal
DECLARE @min decimal
DECLARE @result decimal
SELECT @hour = DATEPART(HOUR, @DateTime)
SELECT @min = (DATEPART(MINUTE, @DateTime)/60.0)
SELECT @result = @hour + @min
RETURN @result
END
Run Code Online (Sandbox Code Playgroud)
类似的查询产生预期的结果......
SELECT DATEPART(HOUR, getDate()) + (DATEPART(MINUTE, getDate())/60.0)
Run Code Online (Sandbox Code Playgroud)
mar*_*c_s 12
它确实返回decimal- 但由于你没有指定精度和比例,它默认为一个比例(小数点后的位数)为0 ......所以你得到一个十进制后没有任何数字的小数点...(因此它将被舍入并且可能看起来它不是真正的小数 - 它是).
你需要改变所有的定义,decimal对一些不包括规模!喜欢decimal(18,4)什么东西.
decimal(18,4)手段的定义:
默认 - 如果你没有指定其他任何东西 - 是 decimal = decimal(18,0)
| 归档时间: |
|
| 查看次数: |
11483 次 |
| 最近记录: |