【问题标题】:SQL convert\cast nvarchar to intSQL 将 nvarchar 转换为 int
【发布时间】:2021-03-23 12:21:02
【问题描述】:

我有很多 nvarchar(max) 类型的“1.0”值。我想将它们转换为 int 但低于查询:

  SELECT CONVERT(int, Quantity)
  FROM MyTable

 SELECT CAST(Quantity as int)
  FROM MyTable

 ALTER TABLE MyTable
  ALTER COLUMN [Quantity] int;

返回错误信息: 将 nvarchar 值“1.0”转换为数据类型 int 时转换失败。

如何将 nvarchar '1.0' 转换为 int?

【问题讨论】:

  • 您使用的是哪个 dbms?
  • 用您正在使用的数据库标记您的问题。
  • 根据您的非英语名称判断,我猜您的 SQL Server 配置为使用欧洲基数(逗号)而不是英/美基数(点),因此出现错误。跨度>
  • 1.0 并不是真正的整数。它是一个十进制值,精度为小数点后一位。所以我猜你需要两个步骤:1.将字符串转换为小数,2.将小数转换为整数。

标签: sql


【解决方案1】:

首先将值设置为适当的格式:

update mytable
    set quantity = convert(decimal, quantity)
    where quantity like '%.%';

然后执行alter table

Here 是一个使用 SQL Server 的数据库小提琴。

【讨论】:

    猜你喜欢
    • 2012-10-18
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多