using System; using System.Data; using Microsoft.SqlServer.Dts.Pipeline.Wrapper; using Microsoft.SqlServer.Dts.Runtime.Wrapper; using Microsoft.SqlServer.Dts.Pipeline; [Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute] public class ScriptMain : UserComponent { public override void ProcessInput(int InputID, PipelineBuffer Buffer) { var indexes = GetColumnIndexes(InputID); while (Buffer.NextRow()) { foreach (var index in indexes) { if (!Buffer.IsNull(index)) { var date = Buffer.GetDateTime(index); date = FixYear(date); Buffer.SetDateTime(index, date); } } } } DateTime FixYear(DateTime input) { if (input.Year < 50) return input.AddYears(2000); if (input.Year < 100) return input.AddYears(1900); if (input.Year < 300) return input.AddYears(1800); return input; } }