Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

DataDiff di SQL Server vs .Net DateDiff

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