MySQL Datentyp bei Geld

Grille

Erfahrenes Mitglied
Hallo,

Kann mir jemand sagen, welchen Datentyp ich in meiner MySQL Datenbank nutzen muss, um Geldbeträge zu speichern?

also auch Werte wie:
-123,45

Danke
 
habe aber bei meiner Datenbank das Problem: wenn ich einen negertiven betrag importieren will, schreibt der 0,00 hin

das hier ist meine SQL anweisung für die Tabelle:
PHP:
CREATE TABLE t010_konto (
  f010_id BIGINT NOT NULL AUTO_INCREMENT,
  f010_bezeichnung VARCHAR(255) NULL,
  f010_kontoinhaber VARCHAR(255) NULL,
  f010_kontonummer VARCHAR(16) NULL,
  f010_bankleitzahl VARCHAR(16) NULL,
  f010_create DATETIME NULL,
  f010_update DATETIME NULL,
  PRIMARY KEY(f010_id)
);
CREATE TABLE t020_buchung (
  f020_id BIGINT NOT NULL AUTO_INCREMENT,
  f020_f030_id BIGINT NOT NULL,
  f020_f010_id BIGINT NOT NULL,
  f020_datum DATE NULL,
  f020_wertstellung DATE NULL,
  f020_buchungshinweis VARCHAR(512) NULL,
  f020_hinweis VARCHAR(512) NULL,
  f020_wert DECIMAL(10,2) UNSIGNED NULL,
  f020_saldo DECIMAL(10,2) UNSIGNED NULL,
  PRIMARY KEY(f020_id),
  INDEX t020_buchung_FKIndex1(f020_f010_id),
  INDEX t020_buchung_FKIndex2(f020_f030_id)
);
CREATE TABLE t030_buchungsgruppe (
  f030_id BIGINT NOT NULL AUTO_INCREMENT,
  f030_gruppenname VARCHAR(255) NULL,
  f030_beschreibung VARCHAR(512) NULL,
  PRIMARY KEY(f030_id)
);

und wenn ich das das eintragen will (SQL Anweisung)
PHP:
INSERT INTO `t020_buchung` ( `f020_id` , `f020_f030_id` , `f020_f010_id` , `f020_datum` , `f020_wertstellung` , `f020_buchungshinweis` , `f020_hinweis` , `f020_wert` , `f020_saldo` ) VALUES ( NULL , '1', '2', '2005-08-06 ' , '2005-08-06', 'TEST', NULL , '-123,45', '885,28' ),

dann steht in der Datenbank was mit 0.00 im Feld "f020_wert" und 885.00 im Feld "f020_saldo"
 
Entferne das UNSIGNED.

"Unsigned" zeigt einen vorzeichenlosen Bereich an, sprich es gibt laut Definition keine negativen Werte.
 
Des weiteren:

Deine Zahlenwerte haben das deutsche Dezimal-Trennzeichen , (Komma). Aber die MySQL Datenbank erwartet . darum solltest du die Daten vorher umformatieren da sonst die Nachkommestellen verfallen. Zumindest bei meiner MySQL Version tut es das *g*
 
Zurück