使用vb脚本的formatnumber函数,如果只是为了要显示小数点前面的这个0,可以使用
FormatNumber(数字变量,-1,-1)
如果你要显示前面的0,并且小数点后面保留N位,就使用
FormatNumber(数字变量,N,-1)
先检查金额列的数据是否都符合小数规范,转为数字格式只有是数字的字符串才能转,如000012转为12,55转为055,若是个英文符号等字符转了就报无效数字类型的错。
转换的方式很多,但是字符串转换成数字的前提是字符串中只包含了数字或者小数点。
可使用convert函数,cast 和convert可以显式转换数据类型,在某些情况下SQL会根据实际情况自动转换!不过建议显式的转换一下,这样的话可读性高一点!
因为字符串不一定能转换成数字,所以用上面的,加上错误处理比较。
例子:
declare @a varchar(10)
set @a='as23'
select case when isnumeric(@a)=1 then cast(@a as int) else null end
set @a='23'
select case when isnumeric(@a)=1 then cast(@a as int) else null end
结果:
declare @a varchar(10)
set @a='as23'
select case when isnumeric(@a)=1 then cast(@a as int) else null end
set @a='23'
select case when isnumeric(@a)=1 then cast(@a as int) else null end
不同的数据库做法不同
replace就是替换,虽然是字符的替换,不过你的特殊字符应该不是数字吧,所以你的号码应该存成字符型,不然假设你的替换字符是xxxx,可是这个可是没办法插入数字格式的。
你说的中间四位怎么定义,是类似xxx xxxx xxxx种种,还是XX YYYY xx这种,如果是前面那种那就用定位比如substr,不知道你是什么数据库,只能用oracle的方式写,可以根据自己数据库自行查找相应函数
比如,replace(字符串,substr(字符串,4,4),'XXXX')
这样的话,假设源字符串为001 1101 1100,那么就会变为001 xxxx 1100
当然,这个语句本身是有问题的,如果刚巧你的号码比较特殊,比如001 0101 0101,那么可能就变成了0XXXX XXXX 01,或者001 1001 1001 那么就是001 XXXX XXXX
那么怎么只更换中间四位,其他位置有特殊的也不动呢?
有两个办法
(1)分开显示人然后合并,比如 selelct substr(字符串,1,3)||‘XXXX’|| substr(字符串,-1,4) (本写法是oracle的,其他数据库的连接符号各有不同,情自行查找)
(2)replace全部替换,其实合作前面的差不多,比如replace(字符串,substr(字符串,1), substr(字符串,1,3)||‘XXXX’|| substr(字符串,-1,4))
要看你是什么编码。
如果是ASC码那么就是8位2进制一个字符,也就是两个十六进制位。
所以,你可以将这个十六进制字符串除0x以外,两位一组,每一组可以使用CHAR(0x0C)的方式转换为字符,再串加在一起就行了。
如果是UNICODE字符,那么就是4位十六进制(16位二进制)一组进行转换。
如第一个字符就是:select nchar(0x0C45),第二个字符就是select nchar(0x0000)
方法一:直接强制转换。如:String str= (String)123;
方法二:直接通过空字符串+数字的形式转换为字符串(前后都可以用)。如:String str= ""+123;
方法三:直接通过包装类来实现。如:String str = StringvalueOf(1231);
楼主,可把数据搜索出来后,用下面的函数处理后再显示出来:
'将一个一位的数字前面加零
function FillZero(str)
ttt=str
if len(str)=1 then
ttt="0" & str
end if
FillZero=ttt
end function
'转化日期,将 一位补上零 2003-1-2 --> 2003-01-02
function ConvertDate(tDate)
ttt=tDate
if isdate(tDate) then
ttt=year(tDate) & "-" & FillZero(month(tDate)) & "-" & FillZero(day(tDate))
end if
ConvertDate=ttt
end function
'输入一个日期时间串,转换成年四位,其他两位的新的日期时间串
function ConvertDateTime(tDateTime)
ttt=tDateTime
if isdate(tDateTime) then
ttt=year(tDateTime) & "-" & FillZero(month(tDateTime)) & "-" & FillZero(day(tDateTime)) & " " & FillZero(cstr(hour(tDateTime))) & ":" & FillZero(cstr(minute(tDateTime))) & ":" & FillZero(cstr(second(tDateTime)))
end if
ConvertDateTime=ttt
end function
以上就是关于asp 数字转化为字符串全部的内容,包括:asp 数字转化为字符串、sql语句中怎样将字符类型转换成数字类型、在sql中如何实现电话号码中间的4位数字转换成特殊字符等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)