oracle中如何将varchar型转换成int型
convert(int,'1234')这个我试过不行,还有不有其他的办法 展开
这样:select to_number('123') from dual
oracle没有显示的INT型,你直接定义成number就好,强制类型转换函数都差不多,转换为日期型就是TO_DATE(),
转换为数字就是TO_NUM(),转换为字符就是TO_CHAR(),括号中跟需要转换的内容,日期型注意格式掩码。
扩展资料:
注意事项
CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。
这个类型 可以是以下值其中的 一个:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]
所以也可以用CAST解决问题:
select server_id from cardserver where game_id = 1 order by CAST(server_id as SIGNED) desc limit 10
也可以使用CONVERT来搞定此问题:
select server_id from cardserver where game_id = 1 order by CONVERT(server_id,SIGNED) desc limit 10
推荐于2017-09-19
convert(int,convert(numeric(4,0),'1234'))
2、并不是所有varchar型都能转换成int型,你得确认数据,
使用TRUNC函数去掉小数点;
3、在数据录入的时候,就判断是否是整数,并且强制转换如,int(price),也同样可以避免日后 SQL 比较时,转换出错。
转换为数字就是TO_NUM(),转换为字符就是TO_CHAR(),括号中跟需要转换的内容,日期型注意格式掩码。
oracle里是to_char() to_number()这样的。