.NET C# Java Javascript Exception

 | 
Frage stellen Fragen Themen Mitglieder Abzeichen RSS-Feed
0
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.
02.09.09
ber.ger 1 1
Kommentieren - Für Rückfragen oder Anmerkungen
3 Antworten
1
Du kannst in .NET die
.ToLocalTime()

Methode des DateTime anwenden in Deiner Gruppierung.
Oder alternativ bereits im SqlServer TSQL falls gewünscht die DATETIME Spalte errechnen mit

DeineDATETIMESPalte + GETDATE() - GETUTCDATE()
02.09.09
Mischa 315 1 3
Mischa 315 1 3
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...
jor 02.09.09
1
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!?
07.09.09
stiV 56 1 2
0
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
12.11.09
Deine Antwort
Entweder einloggen... ...oder ohne Wartezeit registrieren
Name
Passwort
Passwort wiederholen
E-Mail
Geworben von


Login mit OpenID

Mit einem OpenID-Account kannst Du dich auf allen Webseiten anmelden, die OpenID unterstützen. Du hast bereits ein Benutzerkonto bei einem der folgenden Provider? Dann kannst Du dich direkt hier damit registrieren.


OpenID-Provider anklicken: