CREATE FUNCTION F_BBDataD (@temp_BTime varchar(20))
returns varchar(100)
--返回类型必须为varchar型
BEGIN
DECLARE @tmp_A1 float,@tmp_A2 float,@tmp_A3 float,@tmp_bb varchar(200)
SELECT @tmp_A1=SUM(CONVERT(decimal(20,3), Gyld_A1)),@tmp_A2=SUM(CONVERT(decimal(20,3), Gyld_A2)),@tmp_A3=SUM(CONVERT(decimal(20,3),Gyld_A24)) FROM T_Gyld SET @tmp_bb=CONVERT(varchar,@tmp_A1)+','+CONVERT(varchar,@tmp_A2)+','+CONVERT(varchar,@tmp_A3)+',' RETURN (@tmp_bb)END
returns varchar(100)
--返回类型必须为varchar型
BEGIN
DECLARE @tmp_A1 float,@tmp_A2 float,@tmp_A3 float,@tmp_bb varchar(200)
SELECT @tmp_A1=SUM(CONVERT(decimal(20,3), Gyld_A1)),@tmp_A2=SUM(CONVERT(decimal(20,3), Gyld_A2)),@tmp_A3=SUM(CONVERT(decimal(20,3),Gyld_A24)) FROM T_Gyld SET @tmp_bb=CONVERT(varchar,@tmp_A1)+','+CONVERT(varchar,@tmp_A2)+','+CONVERT(varchar,@tmp_A3)+',' RETURN (@tmp_bb)END
float是近拟数,转换的时候,可能会丢失小数,而且默认情况下,小数位是自动控制的
下表显示了从 float 或 real 转换为字符数据时的 style 值。值 输出
0(默认值) 最大为 6 位数。根据需要使用科学记数法。
1 始终为 8 位值。始终使用科学记数法。
2 始终为 16 位值。始终使用科学记数法。
returns varchar(100)
--返回类型必须为varchar型
BEGIN
DECLARE @tmp_A1 decimal(20,3),@tmp_A2 decimal(20,3),@tmp_A3 decimal(20,3),@tmp_bb varchar(200)
SELECT @tmp_A1=SUM(CONVERT(decimal(20,3), Gyld_A1)),@tmp_A2=SUM(CONVERT(decimal(20,3), Gyld_A2)),@tmp_A3=SUM(CONVERT(decimal(20,3),Gyld_A24)) FROM T_Gyld SET @tmp_bb=CONVERT(varchar,@tmp_A1)+','+CONVERT(varchar,@tmp_A2)+','+CONVERT(varchar,@tmp_A3)+',' RETURN (@tmp_bb)END
例 :
SELECT cast(CONVERT(float,'125.5') as varchar(10))
SELECT cast(CONVERT(float,'125.5112') as varchar(10))
SELECT cast(CONVERT(float,'1.255112') as varchar(10))
---结果:
----------
125.5(所影响的行数为 1 行)
----------
125.511(所影响的行数为 1 行)
----------
1.25511(所影响的行数为 1 行)