Entwickler-Ecke
Datenbanken - Kalenderwoche und MS SQL Server 2000
KidPaddle - Mo 22.05.06 15:23
Titel: Kalenderwoche und MS SQL Server 2000
Hallo,
ich möchte in einem SQL anhand der Kalenderwoche eines Datum gruppieren, z. B.:
SQL-Anweisung
1: 2: 3: 4:
| SELECT ISOWEEK(MEINDATUM) AS KW, COUNT(*) AS ANZAHL FROM DUMMY GROUP BY ISOWEEK(MEINDATUM) ORDER BY ISOWEEK(MEINDATUM) DESC |
Die eingebaut Funktion DATENAME(WEEK, MEINDATUM) ist leider nicht brauchbar, da es mir bei einigen Daten eine KW 53 ausgibt und diese Funktion von Sonntag bis Samstag und nicht von Monat bis Sonntag arbeitet.
Habe auch schon eine Stored Procedure, ISOWeek, gefunden, jedoch brauch ich die Funktion in einem SQL - Befehl und das geht mit Stored Proceduren nicht.
Der MS SQL Server 2000 ist Pflicht, ein Wechsel auf eine andere Datenbank ist nicht möglich. Kann mir jemand eine Lösung für dies Problem geben.
Gruß
Thomas
espen - Di 23.05.06 13:38
Hallo,
hast Du es auch schon mit
SQL-Anweisung
1:
| SELECT DATEPART(week, GETDATE()) |
probiert ?
Ggf. hilft Dir bei "falschen" Wochenangaben
SQL-Anweisung
1: 2:
| SET DATEFIRST(...) SELECT @@DATEFIRST |
weiter.
Grüßle.
KidPaddle - Mi 24.05.06 16:41
SQL-Anweisung
1:
| SELECT DATEPART(week, GETDATE()) |
Ja, das habe ich schon probiert, aber es hilft mir leider nicht weiter. Viele Dank für deine Antwort, aber bisher habe ich noch keine zufriedenstellende Lösung gefunden. Kann man nicht im SQL Server eine Funktion schreiben und dann innerhalb eines SQL - Befehles aufrufen? Ich habe nichts gefunden.
Gruß
Thomas
espen - Fr 26.05.06 10:52
Hallo,
ich weiss nicht, ob ich Dich richtig verstehe.
Du kannst natürlich eine User-Defined erstellen (Hier ein Beispiel mit "komischem" Datepart)
SQL-Anweisung
1: 2: 3: 4: 5: 6:
| CREATE FUNCTION fn_WeekOf(@aDate DateTime) RETURNS int AS BEGIN RETURN (SELECT DATEPART(week,@aDate)) END |
In Deiner Abfrage kannst Du dann die Ergebnisse der Funktion mit
SQL-Anweisung
1:
| select dbo.fn_Weekof(getdate()) |
ermitteln.
Gruss,
KidPaddle - Fr 26.05.06 14:53
Danke, das wars. Hatte immer versucht das unter Stored Proceduren anzulegen, aber es gehörte nur in "Benutzer Definierte Funktionen" und schon ging es so wie ich es mir vorgestellt habe.
Vielen Dank.
Thomas
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!