Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server DateDiff contre .Net DateDiff

En fait, l'expression VB.NET vous renvoie les valeurs correctes depuis le nombre total d'hours n'est pas égal à 48 .Par conséquent, il renvoie 1

Dans SQL Server, la fonction DateDiff renvoie une valeur arrondie.

Essayez de diviser la valeur par le nombre total de secondes dans la journée qui est 86400.0

SELECT @Date1, @Date2, DATEDIFF(ss,@Date1,@Date2) /86400.0

La valeur renvoyée sera 1.9999421 au lieu de 2

La différence entre les 2 dates en secondes est 172795 qui est inférieur à 172800 (Total des secondes pendant 2 jours). Par conséquent, la fonction ne devrait renvoyer que 1 si vous n'arrondissez pas le résultat