2017-10-28 11 views
0

SQL Serverのデータをカンマ区切りの値でインポートする必要があります。ここでcsvファイルからインポートする際に、SQL Serverで使用できるDateTimeの形式は何ですか?

は私が間違っていないよ場合、それは文化のデータが含まれているので、最後のフィールド29/1/2000 5:00:00 μμは、受け入れられないサンプルライン

37;3.90;13;3.25;14;1.70;0;1;0-1;2;3;1;3-1;1;29/1/2000 5:00:00 μμ; 

です。

特定のフィールド

KickOffDateTimeデータ型ですので

row += $"{v.KickOff.ToString()};"; 

のように作成されます。

大丈夫ですか、インポート中に後で問題が発生しますか?

+0

どのようにCSVファイルをインポートしますか? BulkCopyや何らかの種類のCSVパーサーを使用していますか? – Steve

+2

'mm/dd/yyyy'をデータ交換の目的のための日付表現として使用しないでください(実際には' mm/dd/yyyy'を何にも使用しないでください、なぜなら、それはばかだからですが、それは別の問題です)。 'yyyy-mm-dd'を使ってください。 – Tomalak

+0

@ Steve SQL管理スタジオ – OrElse

答えて

0

OK]をクリックして、あなたがSQLのためDateTime値の有効な形式のために求めているので、私は、サーバー側

-1

このコードを使用してこの形式をタイムスパン形式に変換してください。 日付を取得するにはtimeOfDay形式を使用してください。これをtimespanに変換したい場合は、mysqlに挿入するのが最も簡単な方法です。

TimeSpan timeOfday=startTime.TimeOfDay; DateTime fullstartDateTime =startDate.Add(timeOfday);

0

でこれをチェックアウトします、私は」ここ

row += $"{v.KickOff.ToString("yyyy-MM-dd HH:mm:ss")};"; 

終わりました何らかの種類のストアドプロシージャを使用してデータを保持していると仮定しています。

いくつかの提案:

  1. 必ずどこ史上可能ISO-8601を使用するようにしてください。
  2. 自分の価値観を解析し、モデルにマップデータを永続化する
  3. 使用するエンティティフレームワーク(例:あなたのCSVからあなたDateTime値を解析して、エンティティのDateTimeプロパティにマッピング)

// 2017-10-28T01:48:04.2399705-07:00 
var local = DateTime.Now.ToString("o"); 

// 2017-10-28T08:51:10.1058821Z 
var utc = DateTime.UtcNow.ToString("o"); 
関連する問題