ПРЕОБРАЗОВАНИЕ
Синтаксис
CONVERT(expr,type), CONVERT(expr USING transcoding_name)
Описание
Функции CONVERT() и CAST() принимают значение одного типа и возвращают значение другого типа.
Тип может быть одним из следующих значений:
- BINARY
- CHAR
- DATE
- DATETIME
- DECIMAL[(M[,D])]
- DOUBLE
- FLOAT (с MariaDB 10.4.5)
-
INTEGER
- Сокращение от
SIGNED INTEGER
- Сокращение от
- SIGNED [INTEGER]
- UNSIGNED [INTEGER]
- TIME
- VARCHAR (в режиме Oracle, начиная с MariaDB 10.3)
Обратите внимание, что в MariaDB INT и INTEGER — это одно и то же.
BINARY генерирует строку с типом данных BINARY. Если указана необязательная длина, BINARY(N) приводит к тому, что преобразование использует не более N байтов аргумента. Значения, длина которых меньше указанного количества байтов, дополняются байтами 0x00 до достижения указанной длины.
CHAR(N) приводит к тому, что преобразование использует не более указанного количества символов в аргументе.
Основное отличие между CAST() и CONVERT() заключается в том, что CONVERT(expr,type) использует синтаксис ODBC, тогда как CAST(expr as type) и CONVERT(... USING ...) используют синтаксис SQL92.
CONVERT() с USING используется для преобразования данных между различными кодировками символов. В MariaDB имена транскодировок совпадают с соответствующими именами кодировок символов. Например, это утверждение преобразует строку 'abc' в кодировке по умолчанию в соответствующую строку в кодировке utf8:
SELECT CONVERT('abc' USING utf8);
Примеры
SELECT enum_col FROM tbl_name ORDER BY CAST(enum_col AS CHAR);
Преобразование BINARY в строку для работы функции LOWER:
SET @x = 'AardVark'; SET @x = BINARY 'AardVark'; SELECT LOWER(@x), LOWER(CONVERT (@x USING latin1)); +-----------+----------------------------------+ | LOWER(@x) | LOWER(CONVERT (@x USING latin1)) | +-----------+----------------------------------+ | AardVark | aardvark | +-----------+----------------------------------+
См. также
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/convert/