Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server DateDiff vs .Net DateDiff


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