sql server如何将数字转换成字符串??

fisherboy 2009-09-03 03:38:52
sql server如何将数字转换成字符串??

asp+sql server

我数据库中,有个字段是存储手机号码的,11位,

我查询的时候怎么转换成字符串?

如何用cast?


sql=".......where .....cast(cellphone as varchar)......."
好像没用啊?
...全文
38445 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
Swordstone 2011-01-24
  • 打赏
  • 举报
回复
老兄,应该是:
sql=".......where .....convert(varchar(11),cellphone)......." 就可以了
snwgija 2009-09-03
  • 打赏
  • 举报
回复
看了半天都不知道LZ到底在做米..是不是智商倒退了```5555
fisherboy 2009-09-03
  • 打赏
  • 举报
回复
我日啊,果然是这样,害我搞了一个下午。
fisherboy 2009-09-03
  • 打赏
  • 举报
回复
我估计我猜到了,但是不知道怎么转换。

因为我sql server数据库里的数据类型是 双精度的,为了保存11位手机号码
比如13639090001
估计数据库引擎查询它时,它是以1.3639E+10形式表现的数据,。
然后经过cast转换,就变成“1.3639E+10” 字符串了。
导致搜索不到。

但是,现在问题是
如何将它转换成字符串?
是不是分2步?
cast(cast(cellphone as Decimal) as varchar(11))

???
SQL77 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 fisherboy 的回复:]
我搜索1.3639 可以把13639111111搜索出来


为什么
[/Quote]
不会吧,晕,
fisherboy 2009-09-03
  • 打赏
  • 举报
回复
keyword 是request("keyword ")来的
fisherboy 2009-09-03
  • 打赏
  • 举报
回复
我搜索1.3639 可以把13639111111搜索出来


为什么
SQL77 2009-09-03
  • 打赏
  • 举报
回复
sql="select * from [User] where charindex('"&keyword&"',RTRIM(LTRIM(CellPhone )))>0

keyword 是什么类型呀?
???
fisherboy 2009-09-03
  • 打赏
  • 举报
回复
我搜索E+ 却把所有记录都搜索出来了。
fisherboy 2009-09-03
  • 打赏
  • 举报
回复
如果我直接
sql="select * from [Usr] where charindex('"&keyword&"',CellPhone)>0"

发现

搜索16,会把手机号为13671567888,13911567999等记录搜索出来。
但是这2个数字中,没有16字符啊?


怪了
fisherboy 2009-09-03
  • 打赏
  • 举报
回复
表:【User】
字段:
id... CellPhone ..........
1 ... 13633333333 ..........
2 ... 13504578705 ..........
3 ... 18904660505 ..........
keyword=request("keyword")
sql="select * from [User] where charindex('"&keyword&"',cast(CellPhone as varchar(11)))>0"
我搜索1,搜不出来
搜索3,可以
搜索136不可以,搜索36可以,搜索363不可以,只要大于3位的关键字 都搜不出来。

请教.
ks_reny 2009-09-03
  • 打赏
  • 举报
回复
如果全部是電話號碼的話,那就別轉型了, SQL會自動隱式轉換的.
百年树人 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 fisherboy 的回复:]
引用 6 楼 fredrickhu 的回复:
引用 5 楼 fisherboy 的回复:
另外,可否

sql="select * from [biao] where charindex('"&keyword&"',cast(CellPhone as varchar(11)))>0"

可以


但是,我执行起来就没用啊。
charindex造成的??
[/Quote]

贴表结构,数据和你要的结果
fisherboy 2009-09-03
  • 打赏
  • 举报
回复
另外问
1,
cast(CellPhone as varchar(11)) 可以换成cast CellPhone as varchar(11) 这样写吗?
fisherboy 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sql77 的回复:]
sql="select * from [biao] where charindex('"&keyword&"',cast(CellPhone as varchar(11)))>0"

可以,最好再加上','...
[/Quote]

逗号加哪里去啊??
fisherboy 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fredrickhu 的回复:]
引用 5 楼 fisherboy 的回复:
另外,可否

sql="select * from [biao] where charindex('"&keyword&"',cast(CellPhone as varchar(11)))>0"

可以
[/Quote]

但是,我执行起来就没用啊。
charindex造成的??
SQL77 2009-09-03
  • 打赏
  • 举报
回复
sql="select * from [biao] where charindex('"&keyword&"',cast(CellPhone as varchar(11)))>0"

可以,最好再加上','...
--小F-- 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fisherboy 的回复:]
另外,可否

sql="select * from [biao] where charindex('"&keyword&"',cast(CellPhone as varchar(11)))>0"
[/Quote]
可以
fisherboy 2009-09-03
  • 打赏
  • 举报
回复
另外,可否

sql="select * from [biao] where charindex('"&keyword&"',cast(CellPhone as varchar(11)))>0"
dawugui 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 fisherboy 的回复:]
sql server如何将数字转换成字符串??

asp+sql server

我数据库中,有个字段是存储手机号码的,11位,

我查询的时候怎么转换成字符串?

如何用cast?


sql=".......where .....cast(cellphone as varchar)......."
好像没用啊?
[/Quote]
cast(cellphone as varchar(11))
加载更多回复(3)

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧