Ich benutze SQL Server 2000. Wenn eine neue Version dieses Problem lösen wird, werde ich aktualisieren.SQL Server: Arithmetische Funktion auf BIGINT verliert Genauigkeit
Betrachten Sie die folgenden Datensätze in einer bigint
Spalte:
1000000000000000000
1000000200000000000
1000000200000100000
1000000200000000001
1000000200000000100
Ich dachte, die folgende SELECT
Anweisung 1 Datensatz ergeben würde, aber es kommt wieder mit einer leeren Menge:
SELECT *
FROM table
WHERE number/100 <> FLOOR(number/100)
Wenn SQL Server bietet einen BIGINT
Datentyp, sicherlich sollte es auch die Arithmetik behandeln?
Wenn Sie ein Upgrade auf dem Tisch ist, warum nicht nur ein Upgrade? Das Jahr 2000 wurde nicht mehr unterstützt, um ein Jahrzehnt voranzutreiben. Bei deinem Beispiel sehe ich nicht, wo etwas nicht so funktioniert, wie es sein sollte. –
Stimmen Sie mit @Sean Lange überein. Sie sollten mindestens 2008R2 sein, wenn dies eine ernsthafte Anwendung ist. – WPrecht