【问题标题】:How to convert numeric into varchar in sql如何在sql中将数字转换为varchar
【发布时间】:2020-07-16 09:23:13
【问题描述】:

有人可以建议在 SQL Server 中插入数值为 varchar 的最佳方法吗?

场景:我有一个临时表,我在其中从另一个来源获取数据。我的表中的一列 receipt number 是数字数据类型,因为我收到的数据也来自数字列。

所以一旦我在暂存表中获取数据,它看起来像下面

RECEIPT_NUMBER
--------------
1201576.0000

我的主表有这个收据编号列,类型为varchar。当我在我的主表中插入数据时,它如下所示:

MAIN_RECEIPT_NUMBER
--------------------
1.20158E+006

谁能建议我在我的主表中以以下格式获取这些数据的最佳方法

MAIN_RECEIPT_NUMBER
--------------------
1201576

【问题讨论】:

  • 您确定Receipt_Number 的数据类型为numeric1.20158e+006 看起来像是将 float 值转换为 varchar
  • 嗨收据编号是 nvarchar
  • Receipt_Numbernvarchar?那么,Main_Receipt_Number 是什么数据类型 - 它是 float 列吗?

标签: sql-server sqldatatypes


【解决方案1】:

尝试使用

to_char(numeric_value)。这可能会解决您的问题。

【讨论】:

  • to_char() 是一个 Oracle 函数。该问题用sql-server 标记。
【解决方案2】:

试试

convert(nvarchar(18),convert(bigint,RECEIPT_NUMBER))

你可能会丢失小数。

【讨论】:

  • 嗨,我试过了,但 sql 抛出错误“将数据类型 nvarchar 转换为 bigint 时出错。”
  • 如果我放小数也没关系,实际上我想摆脱小数,所有的零都跟在后面。
【解决方案3】:

谢谢大家,

我想办法

convert(varchar(40),convert(numeric(18),RECEIPT_NUMBER))

【讨论】:

    猜你喜欢
    • 2020-10-26
    • 1970-01-01
    • 2012-06-26
    • 2013-01-07
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多