Soms moet u MySQL-gegevens van het ene gegevenstype naar het andere casten. Hier leest u hoe u gegevens typt met de MySQL CAST-functie.
Cast typen in MySQL
We zullen bekijken hoe MySQL CAST werkt en hoe gegevens getypt kunnen worden met de MySQL CAST-functie.
Hier is de syntaxis van de MySQL CAST-functie
CAST(data as data_type)
MySQL CAST vereist twee invoer:de gegevens die moeten worden getypecast en het gegevenstype (decimaal, char, enz.) waarnaar u deze gegevens wilt converteren. U kunt gegevens casten naar BINARY, CHAR, DATE, DATETIME, TIME, DECIMAL, SIGNED, UNSIGNED gegevenstypen.
U kunt gegevens als een letterlijke waarde opgeven, zoals hieronder weergegeven
CAST(1 as char)
OF
U kunt gegevens als kolomnaam (bijv. id)
CAST(id as char)
Bonus Lezen:MySQL Rollback Query
Hier is een voorbeeld van een SQL-query waarbij we een int casten naar een char in de SELECT-component
mysql> select cast(1 as char) from sales;
U kunt ook MySQL CAST gebruiken in de WHERE-clausule. Hier zetten we string om naar int in de WHERE-clausule.
mysql> select * from sales where id=CAST('213' as int);
Bonus lezen:MySQL Rollup Query gebruiken
MySQL CAST-voorbeelden
Laten we eens kijken naar enkele veelvoorkomende voorbeelden van de MySQL CAST-functie.
MySQL CAST als Int
Hier is een voorbeeld om MySQL float te casten naar een ondertekend geheel getal. Houd er rekening mee dat u alleen kunt casten naar UNSIGNED of SIGNED integer-gegevenstypen. U kunt INT niet gebruiken in de CAST-functie.
mysql> select cast(1.23 as signed); +------------------------+ | cast(1.23 as signed) | +------------------------+ | 1 | +------------------------+
MySQL CAST als decimaal
Ga als volgt te werk om als decimaal te casten
mysql> select cast(1.23 as decimal(4,3)); +----------------------------+ | cast(1.23 as decimal(4,3)) | +----------------------------+ | 1.230 | +----------------------------+
Bonus lezen:MySQL-versie controleren
MySQL CAST als zwevend
MySQL CAST ondersteunt casten als float niet. Je moet als decimaal casten zoals hierboven weergegeven.
mysql> select cast(2.234 as decimal(5,3)); +-----------------------------+ | cast(2.234 as decimal(5,3)) | +-----------------------------+ | 2.234 | +-----------------------------+
MySQL gegoten als Varchar
MySQL CAST ondersteunt geen cast als varchar. Je moet casten als char zoals hieronder getoond.
mysql> select cast('xyz' as char); +---------------------+ | cast('xyz' as char) | +---------------------+ | xyz | +---------------------+
MySQL Datetime to Date
Hier leest u hoe u datetime tot nu toe cast.
mysql> select cast('2020-01-01 13:30:00' as date); +-------------------------------------+ | cast('2020-01-01 13:30:00' as date) | +-------------------------------------+ | 2020-01-01 | +-------------------------------------+
Ubiq maakt het gemakkelijk om gegevens binnen enkele minuten te visualiseren en in realtime dashboards te controleren. Probeer het vandaag nog!