[ASP] Kalenderwoche in SQL
Klee, Andreas
activeserverpages at glengamoi.com
Tue, 7 Dec 2004 14:28:49 +0100
Danke ...
Macht es mehr Sinn eine benutzerdefinierte Funktion zu schreiben statt =
das ganze einer SP zu übergeben?
Was ist schneller?
Viele Grüße von der Küste
Andreas
-----Original Message-----
From: activeserverpages-admin@glengamoi.com =
[mailto:activeserverpages-admin@glengamoi.com] On Behalf Of =
"Kovacic-Voß, Dominik-Pascal"
Sent: Tuesday, December 07, 2004 1:10 PM
To: 'activeserverpages@glengamoi.com'
Subject: AW: [ASP] Kalenderwoche in SQL
Moin
Dies stammt im Original von Claudius und ich habe es gefunden in der =
alten Mailingliste database.asp (database.asp@glengamoi.com)
da hatten wir das Thema schon mal (von mir ausgelöst) unter dem Titel =
[Database.asp] SQL KW 01/2005 <> RL KW01/2005
Das Ergebnis war damals:
SET @date = '20041226' => KW 52
SET @date = '20041231' => KW 52
SET @date = '20050101' => KW 52
SET @date = '20050103' => KW 01
es gibt zwar nun keine KW53 mehr (die es eh nicht richtig gibt), aber =
die KW01 stimmte wieder ...
Gruß
Dominik
==================
Hab ich im web gefunden... Es gibt aber sicher noch andere kürzere
Implementationen:
CREATE PROC dbo.ISOweek (
@DATE datetime
)
AS
BEGIN
DECLARE @ISOweek int
SET @ISOweek = DATEPART(wk, @DATE) + 1 -
DATEPART(wk, CAST( DATEPART( yy, @DATE ) AS CHAR(4) ) + '0104' ) =
--Special cases: Jan 1-3 may belong to the previous year
IF ( @ISOweek = 0 )
BEGIN
DECLARE @Date2 datetime
SET @DATE2 = CAST( DATEPART( yy, @DATE ) - 1 AS CHAR(4) ) +
'12' + CAST( 24 + DATEPART( DAY, @DATE ) AS CHAR(2) )
-- Nicht so doll: rekursiver Aufruf
EXEC @ISOWeek = ISOWeek @DATE2
SET @ISOWeek = @ISOWeek + 1
END
--Special case: Dec 29-31 may belong to the next year
IF ( ( DATEPART( mm, @DATE ) = 12 ) AND
( ( DATEPART( dd, @DATE ) - DATEPART( dw, @DATE) ) >= 28 ) )
SET @ISOweek=1
RETURN(@ISOweek)
END
Und der Test
DECLARE @week int
DECLARE @date datetime
SET @date = '20000101'
EXEC @Week = ISOWeek @date
-- Noch die 52. Woche
SELECT @Week
SET @date = '20000103'
EXEC @Week = ISOWeek @date
-- die 1.
SELECT @Week
Claudius
==================
-----Ursprüngliche Nachricht-----
Von: Hubert Daubmeier [mailto:hubertd@neusob.de]
Gesendet: Montag, 6. Dezember 2004 19:18
An: activeserverpages@glengamoi.com
Betreff: RE: [ASP] Kalenderwoche in SQL
Bei VBScript kann ich einstellen wie die Kalenderwoche berechnet wird. =
Beim SQL Server schweigen sich die Books online darüber aus. Vermute =
mal "jibt ed ned".
--
Viele Grüße
Hubert Daubmeier
-----Original Message-----
From: activeserverpages-admin@glengamoi.com
[mailto:activeserverpages-admin@glengamoi.com] On Behalf Of Klee, =
Andreas
Sent: Monday, December 06, 2004 5:07 PM
To: activeserverpages@glengamoi.com
Subject: [ASP] Kalenderwoche in SQL
Hallo,
Ich möchte mit einem SQL Statment die Kalenderwoche ermitteln. Mit - =
DATEPART(wk, T1.datum) AS woche - kein Problem, dachte ich.
Am 3.1.2005 ist halt woche 1 und nicht woche 2.
Wie kann ich einstellen das die erste woche die ist mit 4 mindestens =
Tagen.
Viele Grüße von der Küste.
Andreas
_______________________________________________
ActiveServerPages Mailingliste, Postings senden an: =
ActiveServerPages@glengamoi.com An-/Abmeldung und Suchfunktion unter: =
http://www.glengamoi.com/mailman/listinfo/activeserverpages
_______________________________________________
ActiveServerPages Mailingliste, Postings senden an: =
ActiveServerPages@glengamoi.com An-/Abmeldung und Suchfunktion unter: =
http://www.glengamoi.com/mailman/listinfo/activeserverpages
_______________________________________________
ActiveServerPages Mailingliste, Postings senden an: =
ActiveServerPages@glengamoi.com An-/Abmeldung und Suchfunktion unter: =
http://www.glengamoi.com/mailman/listinfo/activeserverpages