Ich habe ein Problem, die Millisekunde-Komponente einer DATETIME
Spalte zu sehen.Millisekunden nicht in SQL-Ausgabe für DateTime-Typ angezeigt
Der Code, der die Tabelle definiert ist:
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);
Der Code, der die Zeile auffüllt ist:
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();
}
wo der EventDateTime
String-Wert ist so etwas wie 2016/01/09 16:10:08.500
Wenn ich laufen eine Abfrage auf dem Tisch bekomme ich zurück: 09/01/2016 16:10:08
Keine Millisekunden. Ich weiß nicht, ob die Werte in die Datenbank gehen oder wenn es die falsche Art zu verwenden oder wenn die Abfrage nicht richtig reagiert:
TestTable.Take (100)
Nun anzuzeigen, gibt es keine Millisekunden, Oder siehst du sie nicht, weil der Standard-ToString sie nicht anzeigt? Verwenden Sie einen Debugger mit einem Haltepunkt, um die Variable zu überprüfen. Oh, und posten Sie die Tabellendefinition, weil es durchaus möglich ist, dass Sie sie nie in der Datenbank speichern. – TomTom
Sql Server DATETIME speichert Millisekunden (.000-999), so dass das Problem wahrscheinlich darin besteht, wie Sie drucken oder die Ergebnisse betrachten. –
Können Sie die zugrunde liegende Tabelle über [SSMS] (https://en.wikipedia.org/wiki/SQL_Server_Management_Studio) anzeigen? Ein DateTime-Feld wird Millisekunden enthalten, aber sie können auf 000 festgelegt werden, wenn 'record.EventDateTime' diese Granularitätsebene nicht unterstützt. –