在SSIS中转换数字格式

Convert number format in SSIS

需要一些帮助.. 我有 excel 格式化的数据。示例 33.257615111 显示为 33.258(三千三百二十五万八千)

我正在尝试使用 SSIS ETL 将数据文件导入 SQL。有没有一种方法可以在 ETL 过程中将其转换为带 2 位小数的数字?即 33257615.11

谢谢

这是可以做到的。使用派生列和 ROUND() 表达式。

在您的数据流中,在 Excel 文件源组件和 OLE DB 目标组件之间,添加一个派生列组件。在 Derived Column 组件中创建一个四舍五入值的新列。

(DT_NUMERIC,25,2)ROUND(MyColumnName, 2)

将上面这个新的派生列映射到您的 SQL 目的地,我们都准备好了。

但是! 您确定要在数据库中存储四舍五入的数字吗?

您是否需要对这一列求和?如果是这样,四舍五入的值将产生与非四舍五入的值截然不同的总数。也许,不要在 SSIS 中进行舍入,而是存储完整的数字。让读取此数据的应用程序进行格式化。就这么简单。

SELECT ROUND(MyColumnName,2) AS MyColumnName
FROM MyTable  

multitier architecture中,数字的格式应该留给显示层,而不是数据层。这正是 Excel 正在做的事情。 向您显示 一个四舍五入的数字,但在幕后是完整的值。不要为了格式化而降低精度。