SQL Academy
Premium
Funktionsreferenz

CAST

Wandelt einen Wert in den angegebenen Datentyp um.

MySQL 8.1
CAST(value AS type)

Parameter

value
Umzuwandelnder Wert
typeSchlüsselwort
Zieldatentyp, bei manchen Typen mit Größe in Klammern
Werte:BINARYCHARDATEDATETIMEDECIMALDOUBLEFLOATJSONNCHARREALSIGNEDTIMEUNSIGNEDYEAR

Rückgabewert

Wert des angegebenen Typs; eine fehlgeschlagene Umwandlung ergibt 0 oder NULL mit Warnung, keinen Fehler

Beispiele

DECIMAL mit und ohne Nachkommastellen

MySQL 8.1
SELECT CAST(12005.6 AS DECIMAL) AS rounded,
	CAST(12005.6 AS DECIMAL(10, 2)) AS with_scale;
roundedwith_scale
1200612005.6

Durchschnitt mit zwei Nachkommastellen

MySQL 8.1
SELECT family_member,
	CAST(AVG(unit_price) AS DECIMAL(10, 2)) AS avg_price
FROM Payments
GROUP BY family_member;
family_memberavg_price
11542.5
210575.43
3505.8
4250
5179.33

Strings in ganze Zahlen

MySQL 8.1
SELECT CAST('12abc' AS SIGNED) AS number_prefix,
	CAST('abc' AS SIGNED) AS no_number;
number_prefixno_number
120

Details

Die Liste der Zieltypen in MySQL ist kürzer als die der Spaltentypen: Für eine ganze Zahl schreibst du SIGNED oder UNSIGNED, und CAST(1 AS INT) ist ein Syntaxfehler. Für einen String verwendest du CHAR, nicht VARCHAR.

TypErgebnis
DATEDatum im Format JJJJ-MM-TT.
DATETIMEDatum mit Uhrzeit im Format JJJJ-MM-TT hh:mm:ss.
TIMEUhrzeit im Format hh:mm:ss.
DECIMAL[(M[,D])]Festkommazahl: M ist die Gesamtzahl der Ziffern (standardmäßig 10), D die Anzahl der Nachkommastellen (standardmäßig 0, deshalb wird ohne sie der Nachkommaanteil gerundet).
DOUBLEGleitkommazahl mit doppelter Genauigkeit.
FLOAT[(p)]Gleitkommazahl mit einfacher Genauigkeit; bei p größer als 24 mit doppelter, wie DOUBLE.
REALDasselbe wie DOUBLE (außer wenn der Modus REAL_AS_FLOAT aktiv ist).
CHAR[(N)]String; wenn du N angibst, wird er auf N Zeichen gekürzt.
NCHAR[(N)]Wie CHAR, aber im nationalen Zeichensatz (utf8mb3).
JSONJSON-Wert; der String muss gültiges JSON sein, sonst gibt es einen Fehler.
SIGNEDGanze Zahl mit Vorzeichen (BIGINT). Eine Kommazahl wird gerundet, aus einem String werden die Ziffern am Anfang gelesen.
UNSIGNEDGanze Zahl ohne Vorzeichen (BIGINT UNSIGNED). Eine negative Zahl wird zu einer sehr großen positiven.
BINARY[(N)]Binärer String: Vergleiche damit erfolgen byteweise und beachten Groß- und Kleinschreibung.
YEARJahr; eine zweistellige Zahl wird auf vier Ziffern ergänzt: 23 wird zu 2023, 70 zu 1970.

Siehe auch

Wo du es lernst