如何在 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中将列转换为Int

如何在 spark sql 连接条件中将字符串数据类型转换为日期:to_date 不起作用并且转换抛出错误

在 SQL Server 2008 中将 NVARCHAR 转换为 INT 数据类型

在 SQL Server 中将行转换为具有特定条件的列

在 SQL Server 中将 int 主键转换为 bigint

在 SQL Server 存储过程中将 varchar 转换为 int 时出错