Na verdade, a expressão VB.NET está retornando os valores corretos desde o número total de
hours não é igual a 48 .Por isso está retornando 1 No SQL Server, a função DateDiff retorna um valor de arredondamento.
Tente dividir o valor pelo número total de segundos no dia, que é
86400.0 SELECT @Date1, @Date2, DATEDIFF(ss,@Date1,@Date2) /86400.0
O valor retornado será
1.9999421 em vez de 2 A diferença entre a data 2 em segundos é
172795 que é menor que 172800 (Total de segundos para 2 dias). Portanto, a função deve retornar apenas 1 se você não arredondar o resultado