从VarChar到Money的错误转换

时间:2014-06-23 10:46:07

标签: sql ssis

Heyo, 我在从Varchar列转换为Money时遇到问题。

据我所知,货币数据类型需要"。"作为分数的分界符。

我的字符串是这样的:796.01。实际上它应该工作。但结果是 - 用这个例子 - 79601,00。 我还尝试了替换功能,(","作为search_expression和"。"作为replace_expression),但没有成功。

我在SSIS中使用带有SQL 2008 R2服务器的Derivec Column Task。

这是一个屏幕: Klick Image

2 个答案:

答案 0 :(得分:1)

你可以尝试下面给出的.. [amount]是输入栏

(DT_I4)REPLACE(amount,"'","")

enter image description here

这对我有用。

1.Source列是数据类型'字符串 enter image description here

enter image description here

数据转换后 enter image description here

答案 1 :(得分:0)

如果您转到OLE DB源的Adavanced Editor并在Input Output Properties下,展开Output Columns,选择所需的列(要将其转换为货币)并将其数据类型属性设置为货币[ DT_CY]来自下拉列表。通过这种方式,OLEDB源本身将负责输出列的转换。

很少有迹象表明为什么它不能用于你的情况 -

  1. Data Conversion - 如果要将数据转换为日期或日期时间数据类型,则输出列中的日期采用ISO格式,但区域设置首选项可能指定不同的格式。
  2. 数据转换 - 在使用字符串数据类型的列之间进行复制时,这两列必须使用相同的代码页。
  3. Derived Column - 如果表达式引用了派生列转换覆盖的输入列,则表达式使用列的原始值,而不是派生值。