SQL - Spaltentyp für Preise

Sasser

Erfahrenes Mitglied
Hallo!

Ich speichere Preise in einer Datenbank an. Ich habe den Typ als Varchar gekennzeichnet.

Leider funktionieren meine Abfragen nur, wenn beide Preise mit 2 Nachkommastellen gespeichert sind.

Wie kennzeichnet man die Spalte am besten, sodass alle eingetragenen Preise im gleichen Format sind und nicht einmal mit Nachkommastellen und einmal ohne?
 
Hallo,

speichere deine Preise am besten in einem Festkommaformat, wie z.B. DECIMAL(10,2) (Details hängen vom Datenbanksystem ab). Alternativ kannst du auch einfach ein Ganzzahlformat verwenden und die Preise in Cent angeben.

Grüße,
Matthias
 
Hallo!

Ich glaube ich speichere es in einem Zahlenformat ab und regele das mit der Angabe in Cent.

Ist glaube ich die sauberste Variante oder?

Vielen Dank!
 
HI,

die sauberste Variante ist ein DECIMAL(10,2), wie mein Vorposter schon geschrieben hat. Je nach RDBMS gibt es auch einen nicht-ANSI-Typen CURRENCY, aber nimm lieber DECIMAL(10,2). Damit kannst Du rechnen, filtern und Werte werden beim Einfügen automatisch gerundet.

Die Werte in cent zu speichern bedeutet, dass dann das Frontend wieder für eine Konvertierung herhalten muss und die Werte selbst in einer SQL Shell schlecht lesbar sind.

Man kann auch alles in BLOBs speichern in einer DB, aber man hat eben nun mal Spaltentypen eingeführt, um eine ehöhte Lesbarkeit und Integrität der Daten zu erreichen. Will sagen : Du speicherst in Java oder C++ auch net alles in Strings, sondern typisierst die Objekte sauber.

Grüße
gore
 

Neue Beiträge

Zurück