mysql使用CAST 为什么一直说语法不对

mysql使用CAST 为什么一直说语法不对,第1张

是你里面的insert有问题,表名后的字段名不用加引号 CREATE PROCEDURE INSERT_P()BEGIN SET @i=0WHILE @i<3 DOINSERT INTO TB_BASE_CITY(ID,CITY_NAME,EN_NAME,COUNTRY_NAME,MODIFY_USER,MODIFY_DT,CREATE_USER,CREATE_DT) VALUES (@i,'武汉','wuhan','1','admin','2016-7-4','admin','2016-7-4')SET @i=@i+1END WHILEEND

都是用来获取一个类型的值,并产生另一个类型的值。

语法上不同:select cast('2.333' as signel) , convert('2.333',signed)#结果都2.

    字符串类型的数字默认在比较大小时,往往会遇到一些坑,例如:在10和9比较大小时字符串类型的数字会以为9比10大,但事实上我们想要比较的结果是10>9,这是为什么呢?其实字符串在比较大小时,比较的是它对应的ASCII码,1的ASCII码比9对应的ASCII码小,系统就会认为10<9。 这时我们可以使用MySQL的 CAST() 函数,将想要转换的字符串转换成想要的类型。

    例如:字符串‘123.45’可以转成整数,DECIMAL默认取得整数,也可以使用SIGNED

    当然也可以指定小数位数,5代表了要取的数字位数(整数位和小数位和),2代表要取到的小数位数。

        转换完成就可以用来进行后期的数值比较了!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8690103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存