Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: SQL Abfrage über Kalender Wochen

  Alt 14. Mai 2006, 13:15
Ich empfehle nicht, eine View zu erstellen, oder die Funktion 'Datepart' zu verwenden. Der Grund ist der, das der SQL-Server dann keinen Datums-Index mehr verwenden kann.

Ich habe eine allgemeine Datumsberechnungsklasse, die mir zu einer gegebenen Periode (Woche, Monat, Quartal, Jahr etc.) den Anfangs- und Endzeitpunkt berechnet. Bei der KW wäre das z.B. Montag 00:00 bis Sonntag 23:59:59. Dann verwende ich im Query einfach ein 'BETWEEN' und dann klappts auch mit dem Index:

Select * from Daten Where TheDateTime Between :DateFrom and :DateTo Für das Datumsformat verwende ich das universelle ODBC-Datumsformat, das -obwohl kaum dokumentiert- auch vom SQL-Server unterstützt wird:

Select * from Daten Where TheDateTime Between { ts '2005-12-24 03:50:00' } and { ts '2005-12-31-2005 18:43:20' } Das Gute an diesem etwas merkwürdigen Format ist, das es überall funktioniert.

Ich bin mir heute nicht mir sicher, aber ich glaube, das die deutsche KW-Berechnung von der amerikanischen abweicht.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat