Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Uint64: wie in MSSQL abbilden?

Yves3 / 10 Antworten / Flachansicht Nickles

Hallo

Was für einen Datentypen muss ich wählen um einen Wert vom Typ uint64 in einer MSSQL Datenbank zu speichern?
Bigint ist 8 Byte (also 64 bit) gross, damit können aber auch negative Zahlen abgebildet werden, es wird also kaum reichen.

Ich tippe auf numeric(20, 0). Wenn ich das richtig verstanden habe beinhaltet dieser Typ 20 Stellen, von denen 0 nach dem Komma sind.
Die höchstmögliche Zahl, die sich mit uint64 darstellen lässt sollte eigentlich 18446744073709551616 sein, hätte also in den 20 Stellen vor dem Komma platz. Allerdings ist dieser Typ grösser als nötig, da er auch negative Zahlen abbilden kann.

Was meint ihr, welcher Typ ist der beste?

bei Antwort benachrichtigen
d-oli Yves3 „Uint64: wie in MSSQL abbilden?“
Optionen
BIGINT 8 Bytes [(M)] [U] [Z] Ganzzahlen von 0 bis 2^64-1 oder von -(2^63) bis (2^63)-1.
Legende
M = maximale Anzahl der gezeigten Stellen
U = UNSIGNED (Zahl ohne Vorzeichen)
Z = Zerofill


Quelle: http://www.schmager.de/mysql.php

... also sollte doch auch BIGINT gehen, wenn du die Option U verwendest. Am besten du probierst es aus. Rechne in deinem Progi 2^64-1, schreibe das Resultat in die Datenbank und dann wird sich zeigen, was beim Lesen daher kommt.

CREATE TABLE `blabla` (
   `bla` bigint(20) unsigned,
   ...
);

Gruss
d-oli

PS: Die höchstmögliche Zahl für BIGINT und uint64 (Matlab oder .NET ..?) ist 2^64-1 = 18'446'744'073'709'551'61 5
Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen