如何在 SQL 条件中将 INT 转换为 VARCHAR [重复]
Posted
技术标签:
【中文标题】如何在 SQL 条件中将 INT 转换为 VARCHAR [重复]【英文标题】:How to covert INT to VARCHAR in SQL condition [duplicate] 【发布时间】:2017-03-16 13:39:44 【问题描述】:选择... 从... 其中 R.WORK_YM = 201611
如何将 R.WORK_YM 更改为字符串值?
【问题讨论】:
【参考方案1】:试试这个:
select... from... where cast(R.WORK_YM as varchar(10))= '201611'
【讨论】:
这对我的 sql 不起作用,这是错误:[错误代码:-461,SQL 状态:42846] DB2 SQL 错误:SQLCODE:-461,SQLSTATE:42846,SQLERRMC:SYSIBM.INTEGER ;SYSIBM.VARCHAR .. 它用于 mssql 。对 mysql 试试这个:select... from... where cast(R.WORK_YM as char(10))= '201611' 我的工作是在 mssql Beauty 上做的! 下一个查询成功了吗? 是的!可以了,谢谢xD【参考方案2】:试试这个 SQL Server 查询,
使用CONVERT
函数
select * from Table R where CONVERT(varchar(10), R.WORK_YM) = '201611'
或
使用STR
函数
select * from Table R where STR(R.WORK_YM,10) = '201611'
或
使用CAST
函数
select * from Table R where CAST(R.WORK_YM as varchar(10)) = '201611'
对于 MySQL,
使用CAST
函数
select * from Table R where CAST(R.WORK_YM as Char(10)) = '201611'
使用CONVERT
函数
select * from Table R where CONVERT(Char(10), R.WORK_YM) = '201611'
【讨论】:
我尝试了您发布的每个查询,但仍然无法正常工作,错误是:错误代码:-461,SQL 状态:42846] DB2 SQL 错误:SQLCODE:-461,SQLSTATE:42846,SQLERRMC: SYSIBM.INTEGER;SYSIBM.VARCHAR 别担心,我从 Ranjana Ghimire 那里得到了答案: where cast(R.WORK_YM as char(10))= '201611' 谢谢! 哦,你正在使用 mysql。不错不错【参考方案3】:在oracle中用于转换
to_char(201611)
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions181.htm
【讨论】:
以上是关于如何在 SQL 条件中将 INT 转换为 VARCHAR [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 spark sql 连接条件中将字符串数据类型转换为日期:to_date 不起作用并且转换抛出错误
在 SQL Server 2008 中将 NVARCHAR 转换为 INT 数据类型