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)
を表示することができ、何ミリ秒はありません、または、デフォルトのToStringで表示されないため、表示されていませんか?変数をINSPECTするには、ブレークポイントを持つデバッガを使用してください。ああ、テーブル定義を投稿するのは、決してデータベースに保存しない可能性があるからです。 – TomTom
Sql Server DATETIMEはミリ秒(.000-999)を格納します。そのため、問題の原因はおそらく印刷結果や表示方法です。 –
[SSMS](https://en.wikipedia.org/wiki/SQL_Server_Management_Studio)を介して基になるテーブルを表示できますか? DateTimeフィールドはミリ秒を保持しますが、 'record.EventDateTime'がこの粒度レベルをサポートしていない場合は、000に設定されます。 –