2015-08-27 200 views
-2

我在格式爲dd.mm.yyyy的原始數據文件中有一個生日字段。 我需要用2015年替換年份,並在讀取文件時保持文件中的月份和日期相同。 目標列是日期時間格式。 我能夠制定下面的表達式,但它一直拋出一個我無法理解的錯誤。SSIS表達式替換年份並保留日期和月份

"2015 -" + RIGHT("0" + (DT_STR,2,1252)DATEPART("mm",birthdate),2) + "-" + RIGHT("0" + (DT_STR,2,1252)DATEPART("dd",birthdate),2)) 

任何深入瞭解這將是有益的

+1

錯誤是什麼? – saarrrr

回答

1

使用VS 2012,我跑了使用字符串變量testdate值爲「2014年8月27日」一個測試,然後在Expression任務更換生日應用於你的表達與@ [User :: testdate]。這導致以下錯誤

「的表述無法評估....嘗試解析 表達...失敗。表達式可能包含一個無效的土氣, 一個不完整的土氣,或無效的元素。它可能不是 格式良好,或者可能缺少所需元素的一部分,如括號爲 。「

如果您的原始數據文件是文本,那麼它可能是以字符串形式出現,而不是在datetime中格式化,即使它保留dd.mm.yyyy格式。因此,如果您收到類似的錯誤,則需要將其視爲字符串。嘗試下面的表達式。

「2015 - 」 + SUBSTRING(生日,4,2)+ 「 - 」 + SUBSTRING(生日, 1,2)

代替 「生日」,我施加我@上面的[User :: testdate]變量(值爲「27.08.2014」),它工作正常,返回以下評估值。

2015年8月27日

之後,你就可以在值,如果用它來填充數據庫錶轉換成datetime。希望這有助於。

+0

完美無缺!非常感謝。 – user1597398

相關問題