
在SQLSERVER2005中,将表中
字符串转换为
数字的函数共2个:1.convert(int,字段名)例如:selectconvert(int,'3')2.cast(字段名asint)例如:selectcast('3'asint)其实,一般情况下没有必要把字符串转换为数字
类型假如需要比较两个字段是否相等,但是一个字段为字符串类型,一个为数字类型,用“=”比较两个值是否相等时,SQLSERVER会自动把字符串转换为数字再比较的!例如:selectda.TITLE_NAME,dsc.NAMEfromdbo.DV_DUTYddinnerjoinDV_SECOND_CLASSdscon(dsc.ID=dd.AREA)leftjoinDV_ASSETdaon(da.ID=dd.RECORD_IDanddd.TYPE='2')wheredd.AREAisnotnull这个SQl中,innerjoinDV_SECOND_CLASSdscon(dsc.ID=dd.AREA)中dsc.ID为数字类型,dd.AREA为字符类型,相当于这样on(1='1')的判断,这时候就会自动吧字符串的'1'转换为数字类型再比较的。但是也有弊端,一旦字符类型转换为数字类型出错(说明字符串的确就非数字组成的),SQL就会抛出异常。SQLSERVER2005中有判断字段是否为数字的函数:ISNUMERIC(字段名)-----假如字段是数字类型返回1,不是就返回0但是好像有的时候不好使,比如:selectisnumeric('3,34')就返回1说明这个函数对字段值中全是数字但是数字间用“,”和“.”(逗号或点)隔开的都视为数字了!
1、首先第一种转换方式是:将字符串类型的转换成数字类型的,这中方法转换直接用to_number()进行转换,具体的语法为to_number(str)就可以了。
2、第二种:将数字类型转换成字符串类型的。
这种转换方式用to_char(),其实转换的方式有点类似上面的to_number()模式,至于后面的999代表的和上面的意思一样。
3、第三种:将日期类型转换成字符串类型
这种方法其实也用的是to_char(),就是将日期格式的转换成自己想要的格式类型的,这种方法比较个性化一点。
4、下面这种将日期类型转换成常见的字符串类型,这种转换方式用的频率比较多一点,也是一种比较全的字符串格式。
5、最后一种:将字符串类型转换成日期类型,这种转换方式用to_date()进行转换。用法也比较简单,转换的日期格式也是自己自定义的。
6、完成效果图。
评论列表(0条)