SSIS将百分比转换为十进制

时间:2014-05-20 19:39:14

标签: sql sql-server database ssis

我正在尝试将百分比显示为数据库中的小数。 我有以下设置将百分比列转换为小数:

----------------           ----------------           ------------
excel source     ---------> data conversion ----------> db output
----------------           ----------------           ------------

我试图将输入严格转换为十进制和数字。 这些都没有改变我的结果。

在我的数据库列中,我只得到0和1。

原谅我粗略的画;我还没有足够的代表发布图片。

2 个答案:

答案 0 :(得分:0)

有很多方法可以实现这一目标。这是一个:

1)将excel文件另存为制表符分隔的文本文件。

2)在SSIS中创建新的平面文件连接    a)设置文件名= .txt文件    b)转到“高级”选项卡,然后单击包含百分比的列    c)设置数据类型以匹配数据库中的目标字段(例如,数字(10,5)

3)在SSIS工作流程中,创建百分比字段的派生列以将百分比转换为十进制(例如,newfield = oldfield / 100)。 确保在派生列转换编辑器中检查数据类型是否未更改。

答案 1 :(得分:0)

希望这就是你要找的东西

像这样的Excel表格是来源。

enter image description here

我刚刚在我的系统中测试过它。它工作正常。这就是我所做的。

  1. 仅使用1个DFT创建了一个SSIS包。
  2. 数据流程如下。请注意,在Excel工作表中显示为40%的值显示为0.40。所以我添加了两个派生列。一个转换为这样,另一个转换为100。
  3. enter image description here

    派生列结构如下所示。

    enter image description here

    目标表结构为

    Create table Destination
    (
    id int,
    name varchar(15),
    hike decimal(8,2)
    )
    

    我按预期得到了结果。

    Select * from Destination
    

    enter image description here