2017-03-28 11 views
3

.csvファイルのソースがあります。私はそれをssisにインポートして、特別な形式の.csvファイルを生成するためにいくつかの変更操作を行います。日付は.Csvファイルから来ています。日付の形式を 'YYYY-MM-DD'から 'MM/DD/YYYY HH:MM:SS AM'に変換する方法

特定の日付の列に対して、yyyy-mm-ddの日付形式を 'MM/DD/YYYY HH:MM:SS AM'に変換する必要があります。例:レポート入力欄の日付が2017-03-27の場合は、03/27/2017 HH:MM:SS AMに変換する必要があります。どうすればいいのですか?

答えて

2

あなたは

select format(getdate(), 'dd/MM/yyyy hh:mm:ss tt') 
Select convert(datetime,'your date',103) 
+0

日付が.csvファイルから来ていると私は出力がMM/DDのようになります。パッケージ、形式を変更するにはしました:リンク以下のeは、それは非常に便利です/ YYYY HH:MM:SS AM。 – toby

+0

その後、オプション103で変換を使用することができます –

2

スクリプトコンポーネントを使用して以下のようにFORMATを使用することができます。日付列を使用すると、スクリプトコンポーネントでDateTime.ParseExact方法を使用することができます文字列の場合

public override void Input0_ProcessInputRow(Input0Buffer Row) 
{ 
    Row.date = Convert.ToDateTime(Row.date).ToString("MM/dd/yyyy hh:mm:ss"); 
} 
+0

私はそれを試してみました。エラーがあります。スクリプトのバイナリコードが見つかりません。 スクリプトの編集ボタンをクリックしてスクリプトを開き、 が正常に作成されていることを確認してください。 – toby

+0

スクリプトを開いてビルドします。スクリプトエディタに列を含め、列名を更新し、データ型に基づいて別の処理を行う必要があります。 –

2

:日付列を仮定すると、文字列です。 outDateは出力列があると仮定し、inDateは、入力欄で)あなたは、このリンクを参照することができ、この方法詳細は

using System; 
using System.Globalization; 


CultureInfo provider = CultureInfo.InvariantCulture; 

public override void Input0_ProcessInputRow(Input0Buffer Row) 
{ 
    Row.outDate = DateTime.ParseExact(Row.inDate,"yyyy-MM-dd",provider).ToString("MM/dd/yyyy HH:mm:ss"); 
} 

また、

関連する問題