Anzahl der Freitage zwischen zwei Daten

8

Wie finde ich die Anzahl der Freitage zwischen zwei Daten (einschließlich der beiden Daten) mit einer SELECT-Anweisung in Oracle SQL?

    
ssahu 11.02.2011, 10:13
quelle

7 Antworten

12

Das wird es tun:

%Vor%

Vielleicht am besten, wenn ich das kaputt mache. Die NEXT_DAY-Funktion gibt den nächsten Tag zurück, der ein (in diesem Fall Freitag) nach Datum ist.

Um den ersten Freitag nach d1 zu finden, wäre also:

%Vor%

Aber wenn d1 ein Freitag ist, der den folgenden Freitag zurückgibt, passen wir an:

%Vor%

Ähnlich wie den letzten Freitag bis einschließlich d2 finden wir:

%Vor%

Das Subtrahieren der 2 ergibt eine Anzahl von Tagen: 0 wenn sie das gleiche Datum sind, 7 wenn sie eine Woche auseinander liegen und so weiter:

%Vor%

In Wochen umrechnen:

%Vor%

Schließlich, wenn sie das gleiche Datum haben, bekommen wir 0, aber wirklich gibt es 1 Freitag, und so weiter, so fügen wir eins hinzu:

%Vor%     
Tony Andrews 11.02.2011, 10:23
quelle
6

Ich muss meine zwei Cent einwerfen, um einen Kalendertisch zu benutzen. (Es ist ein Zwang.)

%Vor%

Tot einfach zu verstehen. Nutzt die Vorteile von Indizes.

Vielleicht sollte ich eine 12-Schritte-Gruppe starten. Kalendertisch anonym.

    
quelle
2

Siehe:

Warum sollte ich eine Zusatzkalendertabelle in Erwägung ziehen?

Der Artikelcode ist speziell für SQL Server, aber die Techniken sind auf den meisten SQL-Plattformen portierbar.

Wenn eine Kalendertabelle vorhanden ist, kann Ihre Abfrage so einfach wie

sein %Vor%     
onedaywhen 11.02.2011 11:52
quelle
1
%Vor%

Ursprüngliche Quelle - Ссылка

    
Sachin Shanbhag 11.02.2011 10:21
quelle
0

Versuchen Sie, diese zu ändern:

%Vor%

/

    
5arx 11.02.2011 10:22
quelle
-1
%Vor%     
Ram 02.05.2012 12:55
quelle
-1

Wählen Sie ((DATEDIFF (dd, @ a, @ b)) + DATEPART (dw, (@ a-6))) / 7

    
user1672287 18.09.2013 07:01
quelle

Tags und Links