Wenn man in der Datenbank Datum und Uhrzeit in UTC-Zeit abspeichert und nicht in lokaler Zeit, wie kann man dann nach lokaler Zeit abfragen machen? Ich habe folgendes (vereinfachtes Problem):
class Tabelle { string Name; DateTime Uhrzeit; }
...
var anzahlProTag = from x in tabellenzeilen group x by x. Uhrzeit.Date into g select new { Datum = g.Key, Anzahl = g.Count() };
Die Gruppierung verwendet jetzt aber natürlich die auf dem Server gespeicherten Uhrzeiten in UTC und ich erhalte falsche Ergebnisse.
ToLocalTime wird von LINQ nicht verstanden. glaube nicht, dass das geht. " + GETDATE() - GETUTCDATE()" gibt im winter 2h zurück und im sommer 1h. geht auch nicht...
wieso sollte GETUTCDATE() nicht gehen? du WILLST ja die lokalzeit? und die weicht in vielen europäischen ländern im winter nun mal um eine und im sommer um 2 stunden von der UTC ab!?
wieso GetUtcDate() nicht geht? - weil es immer von der Jetzt-aktuellen-Zeit abhängt - nicht von der im Datenfeld gespeicherten Zeit. Sprich wenn man in der Winterzeit eine im Sommer gespeicherte Zeit zurückrechnet, erhält man das falsche Ergebnis