Lange Ganzzahlen werden transformiert, wenn sie in kürzere Spalten eingefügt und nicht abgeschnitten werden. Warum? Wie lautet die Formel?
Ich habe eine Spalte vom Typinteger
mit der Länge 10:
`some_number` int(10) unsigned NOT NULL
In diese Spalte füge ich eine zu lange Zahl ein:
$some_number = 715988985123857;
$query = "INSERT INTO this_table SET some_number = ?";
$stmt = $mysqli->prepare($query);
$stmt->bind_param('i', $some_number);
$stmt->execute();
Wenn ich mir ansehe, was in der Tabelle steht, lautet die Nummer jetzt:
2147483647
Wie und warum?715988985123857
einbiegen in2147483647
?
Warum wurde es nicht abgeschnitten?
Was ist der Mechanismus hinter dieser Transformation und kann die resultierende Zahl mit einer Formel berechnet werden?
Ich suche keine Lösung. Ich möchte nur die spezifische Nummer verstehen.