Spec-Zone.ru › MariaDB

ПРЕОБРАЗОВАНИЕ

Синтаксис

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                         |
+-----------+----------------------------------+

См. также

  • Наборы символов и наборы правил сопоставления
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется заранее компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержимом, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/convert/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API