Někdy může být potřeba převést data v MySQL nebo zadat přetypovaná data v MySQL. Zde je návod, jak převést data z jednoho datového typu na jiný pomocí funkce MySQL CONVERT. Lze jej také použít k převodu dat z jedné znakové sady na jinou.
Jak převádět data v MySQL
Zde jsou kroky pro převod dat v MySQL pomocí funkce MySQL CONVERT. Zde je syntaxe funkce MySQL CONVERT
CONVERT(input_value, data_type)
Ve výše uvedené funkci musíte zadat hodnotu input_value jako doslovný řetězec nebo název sloupce a datový_typ, na který chcete tato data převést. Stejně jako MySQL CAST můžete přenášet data do datových typů BINARY, CHAR, DATE, DATETIME, TIME, DECIMAL, SIGNED, UNSIGNED.
Zde je například návod, jak převést doslovnou hodnotu na jiný datový typ
CONVERT(1, char)
a zde je návod, jak převést sloupec (např. id) na jiný datový typ
CONVERT(id, char)
Zde je syntaxe MySQL CONVERT pro převod znakových sad
CONVERT(input_value USING character_set)
Ve výše uvedené funkci musíte zadat input_value jako doslovný řetězec nebo název sloupce a znakovou sadu, na kterou chcete tato data převést.
Zde je příklad, jak přenášet jako latin1
mysql> select convert('test string' using 'latin1'); +---------------------------------------+ | convert('test string' using 'latin1') | +---------------------------------------+ | test string | +---------------------------------------+
Bonusové čtení:Jak psát Cast v MySQL
Příklady převodu MySQL
Podívejme se na některé příklady funkce MySQL CONVERT.
MySQL CONVERT String to Date
Zde je návod, jak převést řetězec na datum
mysql> select convert('2020-08-01',date); +----------------------------+ | convert('2020-08-01',date) | +----------------------------+ | 2020-08-01 | +----------------------------+
Bonusové čtení:MySQL Rollback Query
MySQL CONVERT String to Decimal
Zde je návod, jak převést řetězec na desítkové
mysql> select convert('1.234',decimal(4,3)); +-------------------------------+ | convert('1.234',decimal(4,3)) | +-------------------------------+ | 1.234 | +-------------------------------+
Bonusové čtení:Jak používat MySQL Rollup
MySQL CONVERT String to Double
MySQL nepodporuje převod na dvojitý datový typ. Budete muset převést řetězec na desítkové.
mysql> select convert('2.134',decimal(4,3)); +-------------------------------+ | convert('2.134',decimal(4,3)) | +-------------------------------+ | 2.134 | +-------------------------------+
MySQL CONVERT String to Float
MySQL opět nepodporuje konverzi na datový typ s pohyblivou řádovou čárkou. Budete muset převést řetězec na desítkové.
mysql> select convert('2.134',decimal(4,3)); +-------------------------------+ | convert('2.134',decimal(4,3)) | +-------------------------------+ | 2.134 | +-------------------------------+
Bonusové čtení:Jak zakázat kontrolu cizího klíče v MySQL
MySQL CONVERT String to int
Zde je příklad převodu řetězce MySQL na celé číslo se znaménkem. Vezměte prosím na vědomí, že můžete přetypovat pouze na celočíselné datové typy UNSIGNED nebo SIGNED. Ve funkci CAST nelze použít INT.
mysql> select cast('123' as signed); +------------------------+ | cast('123' as signed) | +------------------------+ | 1 | +------------------------+
MySQL CONVERT Datetime to date
Zde je návod, jak převést datum a čas na datum. Můžete jej také použít k převodu časového razítka na datum.
mysql> select convert('2020-08-01 13:00:00',date); +-------------------------------------+ | convert('2020-08-01 13:00:00',date) | +-------------------------------------+ | 2020-08-01 | +-------------------------------------+
Bonusové čtení:Jak zkontrolovat verzi MySQL
MySQL CONVERT Blob to Text
MySQL CONVERT nepodporuje převod na textový datový typ. Musíte převést blog na char. Zde je ukázka převodu malého blob na znak.
mysql> select convert('wewewwbwbddwg',char); +-------------------------------+ | convert('wewewwbwbddwg',char) | +-------------------------------+ | wewewwbwbddwg | +-------------------------------+
Doufejme, že nyní můžete snadno převádět data v MySQL.
Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!