Hallo Gemeinde!
Ich habe ein Problem mit der Übergabe einer DateTime aus einer C# Anwendung via LINQ in eine MS SQL Datenbank.
messages m = new messages
{
message = Message,
user_id = myUser.id,
timestamp = new DateTime(DateTime.Now.Ticks);
to_usergroup_id = usergroup_id
};
Die Spalte "timestamp" hat den Datentyp "datetime" in der Datenbank. Seltsamerweise wird aber das Datum nur bis zur Minute gespeichert. Die Sekunden und alles darüber hinaus fällt weg.
Wo liegt denn da der Fehler? Es wird doch mehr oder weniger nur eine Long-zahl gespeichert, oder sehe ich das falsch?
Hallo,
normalerweise sollte das kein Problem sein.
Ich verwende Linq2Sql zwar nicht, aber mit dem EF funktioniert das ohne Probleme.
Hast du schon mal versucht einfach **:::
Gruß
Michael
Und um Verwirrungen gleich zu vermeiden, TimeStamp ist auch ein Sql Datentyp, man sollte deshalb eine Spalte nicht wirklich so nennen.
Hast du schon mal versucht einfach **:::
Ja, aber DateTime.Now gibt einen Long wert zurueck. Es wird aber der Datentyp DateTime verlangt.
DateTime.Now gibt ein DateTime zurück, und kein long.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
Okay sry, ich habe DateTime.Now.Ticks verwendet.
DateTime.Now kommt auf das gleiche Ergebnis wie new DateTime(DateTime.Now.Ticks):
In der SQL Datenbank wird nur das Datum bis zur Minute gespeichert. Sekunden (+ noch kleinere Einheiten) fallen weg.
AH, ich dreh durch. Finde auch im Netz einfach nichts dazu.
Hi,
schau doch mal im sql profiler rein ob am Client oder am Server liegt.
Hi
probiers mal so
kurzes Datumsformat
string.Format("{0:d}",DateTime.Now)
dann steht immer die Uhrzeit auf 00:00:00.
Gruß
Bernd
huhu,
wie überprüfst Du was in der DB steht? (nicht dass es nur ein Darstellungsproblem ist)
Bei uns funktioniert das immer reibungslos, auch der SQL-Server kann "Sekunden". Beim 2008er kannst Du alternativ den DateTime2-Datentyp verwenden. Der ist in der genauigkeit dem DateTime von .net angepasst.
😃
Xynratron
Herr, schmeiss Hirn vom Himmel - Autsch!
Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.
Also habe jetzt alles Schritt für Schritt mit dem Debugger verfolgt. Das war garnicht so einfach, denn er hat immer die Entitätsklassen der .dbml Datei übersprungen obwohl ich mit F11 weitergegangen bin.
Mein Problem war mal (wieder) ziemlich bescheuert: Ich hab zwar den Datentyp in der Datenbank geändert, mir aber die .dbmo nicht neu erstellen lassen. In der war noch der Datentyp SmalDateTime gespeichert.
Schande über mein Haupt. Das hat mich jetzt wieder so unendlich viel Zeit gekostet die ich nicht habe -.-
Abrer vielen Dank für das Rege Interesse!