2017-11-13 1 views
0

Dank im Voraus erhalten.Wie in Tsql Gesamtzahl der Stunden in einem Zeitbereich

Meine Frage ist, ich eine Startzeit haben (2017.10.09 20: 28: 05.997) und Endzeit (2017.10.10 05: 37: 12,413) auf meinem Tisch

Ich möchte überprüfen Sie, wie viele Stunden mit tsql zwischen (2017-10-09 22: 00: 00.00) und (2017-10-10 06: 00: 00.000) fallen, dies ist konstant.

Vielen Dank!

Antwort

0

Sie sollten etwas tun:

Declare @start_time datetime; 
Declare @start_range datetime; 
Declare @end_range datetime; 
Declare @end_time datetime; 

If @start_range < @start_time 
Begin 
    Set @start_range [email protected]_time; 
End 

If @end_time < @end_range 
Begin 
    Set @end_range [email protected]_time; 
End 

Select datediff(hour, @start_range, @end_range) 

im Bereich Variablen legen Sie den festen Bereich Sie suchen,

+0

Das ist genau das, was ich gesucht habe .... Vielen Dank! –

1

Ich denke datediff() macht was Sie wollen. Funktioniert das?

select datediff(hour, starttime, endtime) as hours 

Da datediff() nur Grenzen zählt (Stunde Grenzen an der Spitze der Stunde sind), manchmal ist es besser, eine kleinere Einheit zu verwenden und dann Arithmetik zu tun.

Zum Beispiel werden Dezimalstunden ziemlich gut angenähert durch:

select datediff(second, starttime, endtime)/(60 * 60.0) as decimal_hours 
+0

Danke für die Antwort, aber ich brauche nur Stunden, die zwischen 22:00 und 6:00 fallen würden –

Verwandte Themen