In realtà l'espressione VB.NET ti restituisce i valori corretti dal numero totale di hours
non è uguale a 48
.Quindi sta restituendo 1
In SQL Server la funzione DateDiff restituisce un valore di arrotondamento.
Prova a dividere il valore per il numero totale di secondi nel giorno che è 86400.0
SELECT @Date1, @Date2, DATEDIFF(ss,@Date1,@Date2) /86400.0
Il valore restituito sarà 1.9999421
invece di 2
La differenza tra le 2 date in secondi è 172795
che è inferiore a 172800
(Secondi totali per 2 giorni). Quindi la funzione dovrebbe restituire solo 1 se non si arrotonda il risultato