日付の列を持つExcelワークシートを読み込もうとしています。最初の行が空であるため、SSISは列を数値列として扱っているようです。ここで最初の行がSSIS Excelデータソースの日付でない場合は、日付列を読み込みます。
は、Excelの列です:
私はSSIS Excelソースエディタの内部でそれをプレビューすると、それは示しています
あなたは私のTermDate列が現れていることがわかります数字ではなく日付である。どんな助けでも大歓迎です
日付の列を持つExcelワークシートを読み込もうとしています。最初の行が空であるため、SSISは列を数値列として扱っているようです。ここで最初の行がSSIS Excelデータソースの日付でない場合は、日付列を読み込みます。
は、Excelの列です:
私はSSIS Excelソースエディタの内部でそれをプレビューすると、それは示しています
あなたは私のTermDate列が現れていることがわかります数字ではなく日付である。どんな助けでも大歓迎です
Excelの日付の保存へようこそ。 http://www.debugging.com/bug/19252 C#アプリケーションでこの関数を使用して、数値の日付から日時の日付に切り替えることになりました。
/// <summary>
/// Seriously? For the loss
/// <see cref="http://www.debugging.com/bug/19252"></see>
/// </summary>
/// <param name="excelDate">Number of days since 1900-01-01</param>
/// <returns>The converted days to date</returns>
public static DateTime ConvertXlsdtToDateTime(int excelDate)
{
DateTime dt = new DateTime(1899, 12, 31);
// adjust for 29 Feb 1900 which Excel considers a valid date
if (excelDate >= 60)
{
excelDate--;
}
return dt.AddDays(excelDate);
}
あなたはDateTime値を生成したり、同じことを行うために醜い表現を使用して、スクリプト変換で、式を使用することができます。それは私が
DATEADD("day",TermDate - 1,(DT_DATE)"1899-12-31")
上述したように、あなたの日付は以下ExcelDate
を生成するために、派生欄にご入力データ、上記の式を使用した例である偽の1900年2月29日の後にあると仮定していますので、後半のです。私はTermDateAsDate
を持っていたので、予想どおりに日付が一致していました。
可能であればExcelファイル以外として送信されたデータを持っています。 SSISとExcelはうまくいっていません。真の.txtファイルを取得できない場合、.csvはExcelファイルよりもうまく機能します。 – HLGEM