

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Numerische Typen
<a name="r_Numeric_types201"></a>

**Topics**
+ [Ganzzahl-Typen](#r_Numeric_types201-integer-types)
+ [Typ DECIMAL oder NUMERIC](#r_Numeric_types201-decimal-or-numeric-type)
+ [Hinweise zur Verwendung von 128-Bit-DECIMAL- oder -NUMERIC-Spalten](#r_Numeric_types201-notes-about-using-128-bit-decimal-or-numeric-columns)
+ [Gleitkommazahl-Typen](#r_Numeric_types201-floating-point-types)
+ [Berechnungen mit numerischen Werten](r_numeric_computations201.md)
+ [Ganzzahl- und Gleitkommaliterale](r_numeric_literals201.md)
+ [Beispiele mit numerischen Typen](r_Examples_with_numeric_types201.md)

Numerische Datentypen sind Ganzzahlen, Dezimalzahlen und Gleitkommazahlen. 

## Ganzzahl-Typen
<a name="r_Numeric_types201-integer-types"></a>

Verwenden Sie die Datentypen SMALLINT, INTEGER und BIGINT, um Ganzzahlen aus verschiedenen Bereichen zu speichern. Sie können für die einzelnen Typen keine Werte außerhalb des zulässigen Bereichs speichern. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/redshift/latest/dg/r_Numeric_types201.html)

## Typ DECIMAL oder NUMERIC
<a name="r_Numeric_types201-decimal-or-numeric-type"></a>

Verwenden Sie den Datentyp DECIMAL oder NUMERIC, um Werte mit *benutzerdefinierter Genauigkeit* zu speichern. Die Schlüsselwörter DECIMAL und NUMERIC können synonym verwendet werden. In diesem Dokument wird der Begriff *dezimal* für diesen Datentyp bevorzugt. Der Begriff *numerisch* wird in der Regel als Oberbegriff für Ganzzahl-, Dezimalzahl- und Gleitkommazahl-Datentypen verwendet. 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/redshift/latest/dg/r_Numeric_types201.html)

Definieren Sie eine DECIMAL-Spalte in einer Tabelle, indem Sie die *Genauigkeit* (precision) und die *Dezimalstellen* bzw. Nachkommastellen (scale) angeben: 

```
decimal(precision, scale)
```

 *precision*   
Die Anzahl aller signifikanten Stellen im gesamten Wert: die Anzahl der Stellen auf beiden Seiten des Dezimaltrennzeichens. Die Zahl `48.2891` hat z. B. eine Genauigkeit von 6 und 4 Dezimalstellen. Wenn Sie nichts angeben, wird standardmäßig eine Genauigkeit von 18 verwendet. Die maximale Genauigkeit ist 38.  
 Wenn die Anzahl der Stellen auf der linken Seite des Dezimaltrennzeichens in einem Eingabewert die Genauigkeit der Spalte minus der Dezimalstellen überschreitet, kann der Wert nicht in die Spalte kopiert werden. Diese Regel gilt für alle Werte, die nicht innerhalb des Bereichs der Spaltendefinition liegen. Der zulässige Wertebereich für eine `numeric(5,2)`-Spalte erstreckt sich z. B. von `-999.99` bis `999.99`. 

 *scale*   
Die Anzahl aller Dezimalstellen im Nachkommabereich des Wertes bzw. die Anzahl der Stellen auf der rechten Seite des Dezimaltrennzeichens. Ganzzahlen haben keine Dezimalstellen. In einer Spaltenspezifikation muss der Wert für die Dezimalstellen kleiner oder gleich dem Wert für die Genauigkeit sein. Wenn Sie nichts angeben, werden standardmäßig 0 Dezimalstellen verwendet. Es sind maximal 37 Dezimalstellen zulässig.  
Wenn ein Eingabewert, der in eine Tabelle geladen wird, mehr Dezimalstellen aufweist, als für die Spalte zulässig sind, wird der Wert auf die angegebene Dezimalstelle gerundet. Die Spalte PRICEPAID in der Tabelle SALES ist z. B. eine DECIMAL(8,2)-Spalte. Wenn ein DECIMAL(8,4)-Wert in die Spalte PRICEPAID eingefügt wird, wird der Wert auf 2 Dezimalstellen gerundet.   

```
insert into sales
values (0, 8, 1, 1, 2000, 14, 5, 4323.8951, 11.00, null);

select pricepaid, salesid from sales where salesid=0;

pricepaid | salesid
-----------+---------
4323.90 |       0
(1 row)
```
 Die Ergebnisse expliziter Umwandlungen von Werten, aus der Tabelle ausgewählt wurden, werden jedoch nicht gerundet.

**Anmerkung**  
Der maximale positive Wert, der in eine DECIMAL(19,0)-Spalte eingefügt werden kann, ist `9223372036854775807` (263 -1). Die maximale negative Wert ist `-9223372036854775808`. Wenn versucht wird, den Wert `9999999999999999999` (19 mal die Ziffer Neun) einzufügen, wird ein Überlauffehler verursacht. Unabhängig von der Position des Dezimaltrennzeichens ist die längste Zeichenkette, die Amazon Redshift als DECIMAL-Zahl darstellen kann `9223372036854775807`. Der größte Wert, der in eine DECIMAL(19,18)-Spalte geladen werden kann, ist z. B. `9.223372036854775807`.  
Diese Regeln gelten, da DECIMAL-Werte mit einer Genauigkeit von 19 oder weniger signifikanten Stellen intern als 8-Byte-Ganzzahlen gespeichert werden, während DECIMAL-Werte mit einer Genauigkeit von 20 bis 38 signifikanten Stellen als 16-Byte-Ganzzahlen gespeichert werden. 

## Hinweise zur Verwendung von 128-Bit-DECIMAL- oder -NUMERIC-Spalten
<a name="r_Numeric_types201-notes-about-using-128-bit-decimal-or-numeric-columns"></a>

Weisen Sie DECIMAL-Spalten nur dann maximale Genauigkeit zu, wenn Sie sicher sind, dass Ihre Anwendung diese Präzision erfordert. 128-Bit-Werte belegen doppelt so viel Speicherplatz wie 64-Bit-Werte und können zu langsameren Ausführungszeiten von Abfragen führen. 

## Gleitkommazahl-Typen
<a name="r_Numeric_types201-floating-point-types"></a>

Verwenden Sie die Datentypen REAL oder DOUBLE PRECISION, um numerische Werte mit *variabler Genauigkeit* zu speichern. Diese Typen sind *ungenaue* Typen, d. h. manche Werte werden als Annährungen gespeichert, so dass bei der Speicherung und Rückgabe eines bestimmten Wertes leichte Abweichungen auftreten können. Wenn Sie auf genaue Speicherungen und Berechnungen zurückgreifen müssen (z. B. bei Geldbeträgen), verwenden Sie den Datentyp DECIMAL.

REAL steht für das Gleitkommaformat mit einfacher Genauigkeit gemäß dem IEEE-Standard 754 für binäre Gleitkommaarithmetik. Es hat eine Genauigkeit von etwa 6 Ziffern und einen Bereich von etwa 1E-37 bis 1E\$137. Sie können diesen Datentyp auch als FLOAT4 angeben.

DOUBLE PRECISION steht für das Gleitkommaformat mit doppelter Genauigkeit gemäß dem IEEE-Standard 754 für binäre Gleitkommaarithmetik. Es hat eine Genauigkeit von etwa 15 Ziffern und einen Bereich von etwa 1E-307 bis 1E\$1308. Sie können diesen Datentyp auch als FLOAT oder angeben FLOAT8.

Zusätzlich zu den gewöhnlichen numerischen Werten haben Gleitkommatypen mehrere spezielle Werte. Verwenden Sie einfache Anführungszeichen bei diesen Werten, wenn Sie sie in SQL verwenden:
+ `NaN` – not-a-number
+ `Infinity` – unendlich
+ `-Infinity` – negativ unendlich

Um beispielsweise not-a-number in eine Tabellenspalte `day_charge` einzufügen, `customer_activity` führen Sie den folgenden SQL-Befehl aus:

```
insert into customer_activity(day_charge) values('NaN');
```