2016-04-01 23 views
1

DATETIMEタイプのミリ秒のコンポーネントが表示されています。DateTimeタイプのミリ秒がSQL出力に表示されない

テーブルを定義するコードは次のとおり

string command = string.Format("CREATE TABLE {0}(EventDateTime DATETIME, layer3Id VARCHAR(35), EventType VARCHAR(55), Protocol VARCHAR(30), MessageBody VARCHAR(MAX), MessageContent VARCHAR(MAX))", tableName); 
SendSqlCommand(command); 

列を移入するコードは:EventDateTime文字列値Iが実行2016/01/09 16:10:08.500

ようなものである

string insertCommand = string.Format(@"INSERT INTO {0} VALUES (@p1, @p2, @p3, @p4, @p5, @p6)", tablename); 

_con.Open(); 

using (SqlCommand cmd = new SqlCommand(insertCommand, _con)) 
{ 
    cmd.Parameters.AddWithValue("@p1", record.EventDateTime); 
    cmd.Parameters.AddWithValue("@p2", record.layer3Id); 
    cmd.Parameters.AddWithValue("@p3", record.EventType); 
    cmd.Parameters.AddWithValue("@p4", record.Protocol); 
    cmd.Parameters.AddWithValue("@p5", record.MessageBody); 
    cmd.Parameters.AddWithValue("@p6", record.MessageContent); 

    cmd.ExecuteNonQuery(); 
} 

テーブルのクエリを返します。09/01/2016 16:10:08

ミリ秒はありません。

TestTable.Take (100) 
+0

を表示することができ、何ミリ秒はありません、または、デフォルトのToStringで表示されないため、表示されていませんか?変数をINSPECTするには、ブレークポイントを持つデバッガを使用してください。ああ、テーブル定義を投稿するのは、決してデータベースに保存しない可能性があるからです。 – TomTom

+2

Sql Server DATETIMEはミリ秒(.000-999)を格納します。そのため、問題の原因はおそらく印刷結果や表示方法です。 –

+0

[SSMS](https://en.wikipedia.org/wiki/SQL_Server_Management_Studio)を介して基になるテーブルを表示できますか? DateTimeフィールドはミリ秒を保持しますが、 'record.EventDateTime'がこの粒度レベルをサポートしていない場合は、000に設定されます。 –

答えて

1

だから、あなたのデータベースにこれらの値を持っていると仮定することができます:値がデータベースにまたは使用する間違った型であるか、クエリが正しく応答しない場合場合は予定されている場合、私は知らない

enter image description here

純粋なSQL文を実行することによって、あなたはミリ秒で、あなたが予想するだろう形式で日時を取得することができるはず

enter image description here

そして、あなたのC#で、一例として、次の形式を制御することができ、ここでは一例です。ここで

  var res = db.MyTables.Take(100); 

      foreach(var date in res) 
      { 
       Console.WriteLine(Convert.ToDateTime(date.EventDateTime).ToString("dd/MM/yyyy hh:mm:ss.fff")); 
      } 

が出力されますがあり

enter image description here

0

ミリ秒です。あなたはそれらを表示しません。

あなたは、データベースからの時間を読んだときそう、あなたはこのように、出力のためにそれをフォーマットする必要があります。

string s; 
s.Format("{0:yyy-MM-dd hh:mm:ss.fff}", record.EventDateTime) 

今、あなたはまあ変数s

関連する問題