Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server DateDiff vs. .Net DateDiff

Tatsächlich gibt Ihnen der VB.NET-Ausdruck seit der Gesamtzahl von hours die richtigen Werte zurück ist nicht gleich 48 .Daher gibt es 1

zurück

In SQL Server gibt die DateDiff-Funktion einen Rundungswert .

zurück

Versuchen Sie, den Wert durch die Gesamtzahl der Sekunden des Tages zu dividieren, also 86400.0

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

Der zurückgegebene Wert ist 1.9999421 statt 2

Die Differenz zwischen den 2 Datumsangaben in Sekunden beträgt 172795 was weniger als 172800 ist (Gesamtsekunden für 2 Tage). Daher sollte die Funktion nur 1 zurückgeben, wenn Sie das Ergebnis nicht runden