Excel から SQL テーブルにデータをインポートしています。Excel の日付形式は 20090109 で、インポート後、データは 2.00901e+007 この形式で保存されます。
SQLクエリでは、正しい形式で日付を返しています。しかし、linq 2.00901e+007 形式では機能しません。
2.00901e+007 を ddMMyyyy に変更するにはどうすればよいですか?
Excel から SQL テーブルにデータをインポートしています。Excel の日付形式は 20090109 で、インポート後、データは 2.00901e+007 この形式で保存されます。
SQLクエリでは、正しい形式で日付を返しています。しかし、linq 2.00901e+007 形式では機能しません。
2.00901e+007 を ddMMyyyy に変更するにはどうすればよいですか?
正しい値が得られます。問題は Excel セルの書式設定です。Excel は '20090109' を数値と見なし、exp 形式 (2.00901e+007) に変換します。
Excel セル形式をテキストとして設定できます。
worksheet.get_Range("A1").NumberFormat = "@";
または、Excel に追加する前に番号の前に ' を付けることができます。
Excel セルをテキストとしてフォーマットしたくない場合は、SQL の戻り値を DateTime に変換します。セル番号の書式を設定する"ddMMyyyy"
修正:
私の誤解をお詫び申し上げます。SQL から Excel にデータをインポートすると仮定しました。Excelから読み取った値をDateTimeに変換していないようです。
string Value = "Value read from Excel";
DateTime dt = DateTime.ParseExact(Value, "ddMMyyyy", null);
その後、DateTime 値を使用して SQL に入力できます。
dt.ToString("ddMMyyyy")