|
ISO Wochennummer berechnen
|
| Autor |
Nachricht |
Bitsqueezer
Office-VBA-Programmierer
Verfasst am: 18. Dez 2009, 15:55 Rufname:
|
| |
| Version: (keine Angabe möglich) |
|
Hallo zusammen,
für die Ausgabe einer Wochennummer im Kalender gibt es ja in VBA die Möglichkeit, die Wochennummer berechnen zu lassen mit:
DatePart("ww","01.01.2010")
Leider ist das Ergebnis kein ISO-Datum, wie hierzulande verwendet wird, sondern die amerikanische Variante, nach der das Jahr immer mit Wochennummer 1 beginnt (es gibt also halbe Wochen dort, hier nur ganze).
Auf der Seite Week Numbers In Excel gibt es ein paar schöne, kurze Berechnungsmethoden in VBA als Lösung.
Diese habe ich hier mal umgesetzt als Funktion für einen SQL Server, der genau das gleiche Problem hat und fast die gleichen Funktionen wie VBA anbietet.
Das Ergebnis sieht so aus:
| Code: | SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Christian Coppes
-- Create date: 18.12.2009
-- Description: Returns an ISO week (SQL Server returns US week)
-- Created from VBA on http://www.cpearson.com/excel/WeekNumbers.aspx
-- =============================================
CREATE FUNCTION dbo.fnISOWeek(@InDate AS smalldatetime)
RETURNS tinyint
AS
BEGIN
DECLARE @TmpDate AS smalldatetime;
DECLARE @Return AS tinyint;
SELECT @TmpDate=CAST('1/3/'+CAST(DATEPART(yy,DATEADD(dd,4,DATEADD(dd,-(DATEPART(dw,@InDate-1)),@InDate)))
AS varchar(4))
AS smalldatetime);
SELECT @Return= CAST((DATEDIFF(dd,@TmpDate,@InDate)+DATEPART(dw,@TmpDate)+5)/7 AS tinyint);
RETURN @Return;
END
GO | Damit kann man die Berechnung auch bei einer Pass-Through-Abfrage direkt auf dem SQL Server durchführen.
Gruß
Christian
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
| |

|
|
| Verwandte Themen |
| Forum / Themen |
Antworten |
Autor |
Aufrufe |
Letzter Beitrag |
 |
Access Programmierung / VBA: Blackout: Berechnen im Endlosformular |
6 |
beat78 |
112 |
24. Jul 2009, 13:29 beat78  |
 |
Access Formulare: Daten aus Tabelle berechnen und in Formular übernehmen |
12 |
sonnenfisch |
437 |
19. Jul 2009, 03:33 Willi Wipp  |
 |
Access Tabellen & Abfragen: Durchschnittliches Wechselintervall? Wie berechnen? |
18 |
dieselross |
208 |
30. März 2009, 14:59 dieselross  |
 |
Access Tabellen & Abfragen: Zellenwert eines Datensatzes automatisch berechnen? |
5 |
survial555 |
106 |
06. März 2009, 17:07 rita2008  |
 |
Access Tabellen & Abfragen: Ablaufdatum berechnen auf Basis des aktuellen Datum |
3 |
Gast |
212 |
08. Mai 2008, 13:57 rita2008  |
 |
Access Programmierung / VBA: TimeSlots - Verfügbarkeit berechnen |
13 |
Marja |
811 |
05. Mai 2008, 17:51 JörgG  |
 |
Access Tabellen & Abfragen: Betrag berechnen & Bedingte Formatierung innerhalb einer |
1 |
conti |
2011 |
06. Feb 2008, 10:45 Da Oansa  |
 |
Access Programmierung / VBA: Zeitdifferenz in VBA 24 Stunden berechnen |
4 |
Marja |
4252 |
02. Mai 2007, 16:07 KlausMz  |
 |
Access Programmierung / VBA: Nochmal Arbeitstage berechnen |
4 |
silkog |
6733 |
12. Apr 2007, 07:37 silkog  |
 |
Access Formulare: Endlosformular neu berechnen |
11 |
Uli |
712 |
06. Feb 2007, 09:16 jens05  |
 |
Access Tabellen & Abfragen: Laufende Summe berechnen |
7 |
Mike05 |
3000 |
15. Jan 2007, 23:16 Nadia_23  |
 |
Access Formulare: Bestimmte Anzahl berechnen |
2 |
Gast |
416 |
29. Jul 2006, 16:05 Gast  |
| |
|