300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql varchar char转换_关于char 类型转 varchar类型的问题

mysql varchar char转换_关于char 类型转 varchar类型的问题

时间:2020-03-14 14:24:04

相关推荐

mysql varchar char转换_关于char 类型转 varchar类型的问题

你的位置:

问答吧

-> MySQL

-> 问题详情

关于char 类型转 varchar类型的问题

由于想把表设计为静态的表,所以牺牲了一点空间,有两个字段使用了char(40),导致使用MSSQL的OPENRowSet()函数无法处理...所以本人想在查询语句中进行转换,却发现无法把char(40)转换成varchar(42)

..举个例子了...MySQL版本为5.0.27 +MyISAM引擎:

create database if not exists `game`;

USE `game`;

CREATE TABLE `eugene` (

`name` char(40) character set latin1 collate latin1_general_ci NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=gb2312;

insertinto `eugene`(`name`) values ('eg');

然后执行:

select cast(name AS varchar(42)) from eugene出现语法错误

若是:

select cast(name AS char(42)) from eugene

是没问题的,而且varchar类型转char类型也是没问题的,所以请大家赐教

作者: jinguanding

发布时间: -10-12

大家近来看看啊......特别是有多年MySQL经验的人...

作者: jinguanding

发布时间: -10-12

cast (** as varchar(42))

本来就不对啊

作者: cyt

发布时间: -10-15

谢谢回复..

那麻烦您给写个能执行的语句出来..请赐教,谢谢!

作者: jinguanding

发布时间: -10-15

MYSQL中的CAST 和CONVERT函数不能把CHAR类型的列转化为VARCHAR类型。

只能把VARCHAR类型转化为CHAR类型。除非你重新定义。

作者: yueliangdao0608

发布时间: -10-15

我也是测试的时候发现有这样的问题..且手册也没有提到是否可以转,估计是不能转,所以到论坛求证下..谢谢回复..

建议MySQL AB改进下

作者: jinguanding

发布时间: -10-17

那你就去他们网站上发个帖子吧。

作者: yueliangdao0608

发布时间: -10-18

ssss

作者: zhangly80221

发布时间: -10-22

CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)

CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。

这个类型 可以是以下值其中的 一个:

BINARY[(N)]

CHAR[(N)]

DATE

DATETIME

DECIMAL

SIGNED [INTEGER]

TIME

UNSIGNED [INTEGER]

建议新建一张表,然后从旧的表插入记录到新表

作者: atgc

发布时间: -10-22

好几天没进了..大家还在为此贴发信息,小弟非常感谢...

因为我是在通过MSSQL的Openrowset()函数读数据的时候,会出现问题.所以才想在 Select语句中进行char转varchar.....

至于不想把char类型的列改为 varchar的原因是想保持该表为静态表,即不需要为表动态分配空间(该表只有两个字段的值为字符串,且长度比较固定,其他为整型),而提供服务器性能....

至于怎么解决我想了很多办法都没解决..所以来求证下......

谢谢大家.....这个问题...什么 时候我把MySQL的代码改了...

作者: jinguanding

发布时间: -10-22

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。