2016-12-01 1 views
0

Ich habe eine Tabelle mit datetime2 (7) Spalte.Keine Mikrosekunden, wenn ich datetime2 (7) einfüge

Ich schaffe Befehlsparameter wie folgt aus:

cmdInsertActionNote.Parameters.Add("@DateTimeUTC", SqlDbType.DateTime2); 

Und ich bevölkern und ausführen Befehl wie:

cmdInsertActionNote.Parameters["@DateTimeUTC"].Value = DateTime.utcNow; 
int rowsAffected = cmdInsertActionNote.ExecuteNonQuery(); 

In meiner SQL-Tabelle Ich sehe:

2016-12- 01 13: 53: 13.0700000

Also ich habe Millisekunden, aber immer nur 0 für die letzten 4 Ziffern.

Was mache ich falsch?

EDIT 1:

Für diejenigen, die denken, dass es ein Windows-Problem ist - es ist nicht für mich ist, habe ich Windows Server 2008 und ich Mikrosekunden erhalten. Hier ist eine "Zeit" Spaltenwert bevölkert von C#/datetime.utcNow.TimeOfDay:

12: 06: 56,6550029

+0

Kommentare nicht für längere Diskussion sind; Diese Konversation wurde [in den Chat verschoben] (http://chat.stackoverflow.com/rooms/129570/discussion-on-question-by-maninmoon-not-getting-microseconds-when-i-insert-datet). –

Antwort

1

Von https://stackoverflow.com/a/13909323/563088

Die Werte, die Sie von bekommen DateTime.Now sind nur präzise innerhalb von 16 Millisekunden

Siehe auch: https://msdn.microsoft.com/en-us/library/system.datetime.utcnow(v=vs.110).aspx#Remarks

So könnte die datetime2 der Lage sein, Mikros zu halten, aber der Code füttert es Millis

+0

Das OP verwendet 'DateTime.UtcNow', nicht' DateTime.Now', das unterschiedliche Merkmale aufweist. – Maarten

+0

@Maarten es ist der gleiche Datentyp, nur die Zeitzone ist anders –

+0

@PanagiotisKanavos Ich weiß, aber die Präzision ist anders. – Maarten