SQL und numerische felder mit Nachkommazahlen

Alles zum SQL-Dialekt

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

SQL und numerische felder mit Nachkommazahlen

Beitrag von Manfred »

Hi,

wie muß man eigentlich bei SQL Spaltendefinitionen die Spaltenbreite angeben, bei Nachkommastellen? Bei DBF ist es ja 7,2 = 7 Stellen gesamt, 2 davon Nachkomma, 1 für das Komma. Das was ich gerade gegoogelt habe, verwirrt mich ein wenig. Dort steht nämlich, 7,2 würde bedeuten links und rechts vom Komma nur 2 Zahlen. Oder interpretiere ich das falsch?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SQL und numerische felder mit Nachkommazahlen

Beitrag von Martin Altmann »

So wie Du das dort gelesen hast, glaube ich das nicht wirklich.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: SQL und numerische felder mit Nachkommazahlen

Beitrag von Manfred »

also verhält es sich so, wie bei DBF!?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: SQL und numerische felder mit Nachkommazahlen

Beitrag von Martin Altmann »

Ähnlich. Yup. Das Komma wird nicht mitgezählt. 6,2 heißt 4 vor und 2 nach dem Komma.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: SQL und numerische felder mit Nachkommazahlen

Beitrag von georg »

Hallo,


im Zweifel, ausprobieren:

Code: Alles auswählen

mysql> create table dezimal (feld1 decimal (4,2));
Query OK, 0 rows affected (0.12 sec)

mysql> insert into dezimal (feld1) values (3333.33);
ERROR 1264 (22003): Out of range value for column 'feld1' at row 1
mysql> insert into dezimal (feld1) values (333.33);
ERROR 1264 (22003): Out of range value for column 'feld1' at row 1
mysql> insert into dezimal (feld1) values (33.33);
Query OK, 1 row affected (0.05 sec)
Also, (Gesamtlänge, Dezimalstellen). Zumindest bei MySQL. Es mag aber auch sein, dass bei anderen Systemen - in Abhängigkeit von der Implementierung der Speicherung) - grössere Werte zulässig sind. Bei der AS/400 (DB/2 400) werden numerische Werte standardmässig gepackt abgelegt, und gepackte Felder haben immer eine ungerade Stellenanzahl ...

Aber für den Standard sollte das gelten.

Vorsicht, denn das geht auch ...

Code: Alles auswählen

mysql> insert into dezimal (feld1) values (33.333);
Query OK, 1 row affected, 1 warning (0.02 sec)

mysql> select * from dezimal;
+-------+
| feld1 |
+-------+
| 33.33 |
| 33.33 |
+-------+
2 rows in set (0.00 sec)

Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Antworten