Ich habe eine Tabelle, die verschiedene Zeitbereiche enthält:SQL berechnen Punkte zwischen einem Zeitbereich
Id Start Time End Time Points
1 0:00 3:00 10
2 3:01 6:00 20
3 6:01 23:59 30
Jetzt muss ich die Punkte berechnen zwischen zwei Datumsbereiche in Bezug auf Zeit erreicht angegeben.
Start date = 11/9/2016 18:17:00 and
End date = 11/10/2016 01:20:00
Ich muss die Summe der Punkte zwischen diesen beiden Daten berechnen. Die Zeit des Startdatums, das 18.17 fällt unter Id 3, dessen Punkt ist 30. So wird die Berechnung sein,
18:17 to 23:59 -> 6 hrs -> 6 * 30 = 180 points
die Endzeit 01.20 fällt unter Id 1
0:00 to 1:20 -> 2 hrs
(if minute is greater than zero, it is rounded to next hour, ie; 2) -> 2 * 10 = 20 points
Die Gesamtpunktzahl beträgt somit 200 Punkte. Die Zeitdifferenz zu nehmen, hilft mir nicht, wenn die Anfangs- und Enddatumsdifferenz größer als ein Tag ist.
Tabellenstruktur: Id - int, Starttime - Zeit (7), EndTime - Zeit (7), Punkte - int
Wie eine Abfrage für diese Verwendung von SQL schreiben?
Was ist der Datentyp für Ihre Startzeit und Spalten Endzeit? Was ist dein Datumsformat? 'DDMM' oder' MMDD'? – Tanner
Woher bekommen Sie Ihr Start- und Enddatum? Eine andere Tabelle oder ein Parameter? – Nomeaning25
Datentyp ist Zeit (7) – Joe