MySQL функция CONVERT
MySQL функция CONVERT преобразует значение из одного типа данных в другой или один набор символов в другой.
Синтаксис
Синтаксис MySQL функции CONVERT:
CONVERT( value, type )
ИЛИ
Второй синтаксис для функции CONVERT используется для преобразования одного набора символов в другой набор символов:
CONVERT( value USING character_set )
Параметры или аргументы
value — значение для преобразования.
type — тип данных, для которого нужно преобразовать значение. type может быть одним из следующих:
| Value | Описание |
|---|---|
| DATE | Преобразует value в тип DATE, который имеет только часть даты. Формат — ‘YYYY-MM-DD’. Поддерживаемый диапазон: от ‘1000-01-01’ до ‘9999-12-31’. |
| DATETIME | Преобразует value в тип DATETIME, который имеет как часть даты, так и время. Формат — ‘YYYY-MM-DD HH:MM:SS’. Поддерживаемый диапазон: ‘1000-01-01 00:00:00’ до ‘9999-12-31 23:59:59’. |
| TIME | Преобразует value в тип TIME, который имеет только часть времени. Формат — ‘HH:MM:SS’. Поддерживаемый диапазон от ‘-838:59:59’ до ‘838:59:59’. |
| CHAR | Преобразует value в тип CHAR, который представляет собой строку фиксированной длины. |
| SIGNED | Преобразует value в тип SIGNED, который является 64-разрядным целым числом со знаком. |
| UNISIGNED | Преобразует value в тип UNSIGNED, который представляет собой 64-разрядное целое число без знака. |
| BINARY | Преобразует value в тип BINARY, который представляет собой двоичную строку. |
character_set — набор символов для преобразования.
Примечание
- Начиная с MySQL 4.0.6, вы можете использовать CHAR в качестве типа в функции CONVERT.
- См. также функцию CAST.
Применение
Функция CONVERT может использоваться в следующих версиях MySQL:
- MySQL 5.7, MySQL 5.6, MySQL 5.5, MySQL 5.1, MySQL 5.0, MySQL 4.1, MySQL 4.0.2
Пример
Рассмотрим примеры MySQL функции CONVERT, чтобы понять, как использовать функцию CONVERT в MySQL.
Преобразование в DATE
Первый Синтаксис MySQL функции MySQL CONVERT позволяет преобразовать значение из одного типа данных в другой. Давайте посмотрим, как использовать функцию CONVERT для преобразования значения в тип DATE. Например:
Представление двоичного числа в sql
Добавлено через 58 минут
неужели никто не знает?
к примеру мне нужно бинарное число 101 (5) определить как переменную
DECLARE @ids INTEGER = 101b --или что-то подобное..такое должно быть
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Представление двоичного числа в формате слова
Здравствуйте. Помогите пожалуйста с решением. Нужно представить двоичные числа как положительные.
Представление двоичного числа в десятичном виде
Двоичное число вводится с клавиатуры. Есть ли способ перевода с помощью битовых операций,если да,то.
десятичное число перевести в строковое представление двоичного числа из 8 бит
Функция принимает инт (0..255) и должна отдать строку из 8бит этого числа в двоичной системе.
Представление заданных типов данных в двоичном виде и перевод из двоичного представления
При выполнении лабораторной работы в университете обнаружил пробел в понимании типа unsigned char.
1630 / 1045 / 393
Регистрация: 31.05.2012
Сообщений: 3,674
Попробуй один из вариантов, проверить сей момент не на чем
DECLARE @ids INT = 0x101b или DECLARE @ids INT SET @ids=CAST(0x101b AS int)
9.5. Функции и операторы для работы с бинарными строками#
9.5. Функции и операторы для работы с бинарными строками
Этот раздел описывает функции и операторы для изучения и манипулирования двоичными строками, то есть значениями типа bytea . Многие из них эквивалентны по назначению и синтаксису функциям работы со строками, описанным в предыдущем разделе.
SQL определяет некоторые строковые функции, которые используют ключевые слова, а не запятые, для разделения аргументов. Подробности приведены в разделе Таблица 9.11. Tantor SE-1C также предоставляет версии этих функций, которые используют обычный синтаксис вызова функций (см. раздел Таблица 9.12).
Таблица 9.11. SQL Функции и операторы для работы с бинарными строками
bytea || bytea → bytea
Сцепляет две двоичные строки.
‘\x123456’::bytea || ‘\x789a00bcde’::bytea → \x123456789a00bcde
bit_length ( bytea ) → integer
Возвращает количество битов в двоичной строке (8 раз функция octet_length ).
octet_length ( bytea ) → integer
Возвращает количество байтов в двоичной строке.
overlay ( bytes bytea PLACING newsubstring bytea FROM start integer [ FOR count integer ] ) → bytea
Заменяет подстроку bytes , начиная с start -го байта и распространяющуюся на count байт, на newsubstring . Если count опущен, по умолчанию используется длина newsubstring .
overlay(‘\x1234567890’::bytea placing ‘\002\003’::bytea from 2 for 3) → \x12020390
position ( substring bytea IN bytes bytea ) → integer
Возвращает первый индекс начала указанной подстроки substring внутри bytes , или ноль, если она отсутствует.
position(‘\x5678’::bytea in ‘\x1234567890’::bytea) → 3
substring ( bytes bytea [ FROM start integer ] [ FOR count integer ] ) → bytea
Извлекает подстроку из bytes , начиная с start -го байта, если он указан, и заканчивая после count байтов, если он указан. Укажите хотя бы один из параметров start и count .
substring(‘\x1234567890’::bytea from 3 for 2) → \x5678
trim ( [ LEADING | TRAILING | BOTH ] bytesremoved bytea FROM bytes bytea ) → bytea
Удаляет самую длинную строку, содержащую только байты, указанные в bytesremoved , с начала, конца или обоих концов ( BOTH по умолчанию) bytes .
trim(‘\x9012’::bytea from ‘\x1234567890’::bytea) → \x345678
trim ( [ LEADING | TRAILING | BOTH ] [ FROM ] bytes bytea , bytesremoved bytea ) → bytea
Это нестандартный синтаксис для функции trim() .
trim(both from ‘\x1234567890’::bytea, ‘\x9012’::bytea) → \x345678
Дополнительные функции для манипуляции с бинарными строками доступны и перечислены в Таблица 9.12. Некоторые из них используются внутренне для реализации стандартных строковых функций SQL , перечисленных в Таблица 9.11.
Таблица 9.12. Другие функции для работы с двоичными строками
bit_count ( bytes bytea ) → bigint
Возвращает количество установленных битов в двоичной строке (также известное как “ popcount ” ).
btrim ( байты bytea , удаленныебайты bytea ) → bytea
Удаляет самую длинную строку, содержащую только байты, указанные в bytesremoved , из начала и конца bytes .
btrim(‘\x1234567890’::bytea, ‘\x9012’::bytea) → \x345678
get_bit ( bytes bytea , n bigint ) → integer
Извлекает n-й бит из двоичной строки.
get_bit(‘\x1234567890’::bytea, 30) → 1
get_byte ( bytes bytea , n integer ) → integer
Извлекает n-й байт из двоичной строки.
get_byte(‘\x1234567890’::bytea, 4) → 144
length ( bytea ) → integer
Возвращает количество байтов в двоичной строке.
length ( байты bytea , encoding name ) → integer
Возвращает количество символов в двоичной строке, предполагая, что это текст в заданной кодировке encoding .
length(‘jose’::bytea, ‘UTF8’) → 4
ltrim ( bytes bytea , bytesremoved bytea ) → bytea
Удаляет самую длинную строку, содержащую только байты, указанные в bytesremoved , из начала bytes .
ltrim(‘\x1234567890’::bytea, ‘\x9012’::bytea) → \x34567890
md5 ( bytea ) → text
Вычисляет MD5-hash двоичной строки, результат записывается в шестнадцатеричном формате.
rtrim ( bytes bytea , bytesremoved bytea ) → bytea
Удаляет самую длинную строку, содержащую только байты, указанные в bytesremoved , из конца bytes .
rtrim(‘\x1234567890’::bytea, ‘\x9012’::bytea) → \x12345678
set_bit ( bytes bytea , n bigint , newvalue integer ) → bytea
Устанавливает n-й бит в двоичной строке в значение newvalue .
set_bit(‘\x1234567890’::bytea, 30, 0) → \x1234563890
set_byte ( bytes bytea , n integer , newvalue integer ) → bytea
Устанавливает n-й байт в двоичной строке в значение newvalue .
set_byte(‘\x1234567890’::bytea, 4, 64) → \x1234567840
sha224 ( bytea ) → bytea
Вычисляет SHA-224 хэш двоичной строки.
sha256 ( bytea ) → bytea
Вычисляет SHA-256 хэш hash бинарной строки.
sha384 ( bytea ) → bytea
Вычисляет SHA-384 хэш двоичной строки.
sha512 ( bytea ) → bytea
Вычисляет SHA-512 хэш hash двоичной строки.
substr ( bytes bytea , start integer [ , count integer ] ) → bytea
Извлекает подстроку из bytes , начиная с start -го байта и продолжающуюся count байтов, если это указано. (То же самое, что и substring( байты from start for count ) ).
substr(‘\x1234567890’::bytea, 3, 2) → \x5678
Функции get_byte и set_byte нумеруют первый байт двоичной строки как байт 0. Функции get_bit и set_bit нумеруют биты справа в каждом байте; например, бит 0 является наименее значимым битом первого байта, а бит 15 — наиболее значимым битом второго байта.
Для исторических причин функция md5 возвращает шестнадцатеричное значение типа text , в то время как функции SHA-2 возвращают тип bytea . Используйте функции encode и decode для преобразования между ними. Например, напишите encode(sha256(‘abc’), ‘hex’) , чтобы получить шестнадцатеричное текстовое представление, или decode(md5(‘abc’), ‘hex’) , чтобы получить значение типа bytea .
Функции для преобразования строк между различными наборами символов (кодировками) и для представления произвольных двоичных данных в текстовой форме показаны в Таблица 9.13. Для этих функций аргумент или результат типа text выражается в кодировке по умолчанию базы данных, в то время как аргументы или результаты типа bytea находятся в кодировке, указанной другим аргументом.
Таблица 9.13. Функции преобразования текста/бинарной строки
convert ( bytes bytea , src_encoding name , dest_encoding name ) → bytea
Преобразует двоичную строку, представляющую текст в кодировке src_encoding , в двоичную строку в кодировке dest_encoding (см. Раздел 22.3.4 для доступных преобразований).
convert(‘text_in_utf8’, ‘UTF8’, ‘LATIN1’) → \x746578745f696e5f75746638
convert_from ( bytes bytea , src_encoding name ) → text
Преобразует двоичную строку, представляющую текст в кодировке src_encoding , в text в кодировке базы данных (см. Раздел 22.3.4 для доступных преобразований).
convert_from(‘text_in_utf8’, ‘UTF8’) → text_in_utf8
convert_to ( string text , dest_encoding name ) → bytea
Преобразует строку text (в кодировке базы данных) в бинарную строку, закодированную в кодировке dest_encoding (см. Раздел 22.3.4 для доступных преобразований).
convert_to(‘some_text’, ‘UTF8’) → \x736f6d655f74657874
encode ( байты bytea , формат text ) → text
Преобразует двоичные данные в текстовое представление; поддерживаемые значения format : base64 , escape , hex .
encode(‘123\000\001’, ‘base64’) → MTIzAAE=
decode ( string text , формат text ) → bytea
Декодирует двоичные данные из текстового представления; поддерживаемые значения формата такие же, как и для encode .
decode(‘MTIzAAE=’, ‘base64’) → \x3132330001
Функции encode и decode поддерживают следующие текстовые форматы:
Формат base64 соответствует разделу 6.8 RFC 2045. Согласно RFC , закодированные строки разбиваются на 76 символов. Однако вместо символа CRLF MIME в конце строки используется только символ новой строки. Функция decode игнорирует символы возврата каретки, новой строки, пробела и табуляции. В противном случае, при передаче недопустимых данных base64 функции decode возникает ошибка, включая неправильное заполнение дополнительными символами.
Формат escape преобразует нулевые байты и байты с установленным старшим битом в восьмеричные последовательности экранирования ( \ nnn ), и удваивает обратные слеши. Другие значения байтов представлены буквально. Функция decode вызовет ошибку, если за обратным слешем не следует либо второй обратный слеш, либо три восьмеричные цифры; она принимает другие значения байтов без изменений.
Формат hex представляет каждые 4 бита данных в виде одной шестнадцатеричной цифры, от 0 до f , записывая старший разряд каждого байта первым. Функция encode выводит шестнадцатеричные цифры от a до f в нижнем регистре. Поскольку наименьшая единица данных составляет 8 бит, всегда возвращается четное количество символов при вызове функции encode . Функция decode принимает символы a — f в верхнем или нижнем регистре. Возникает ошибка, когда функции decode передаются недопустимые шестнадцатеричные данные, включая случай с нечетным количеством символов.
См. также функцию агрегации string_agg в Раздел 9.21 и функции для работы с большими объектами в Раздел 32.4.
| Назад | Наверх | Далее |
| 9.4. Функции и операторы строк | Начало | 9.6. Функции и операторы для битовых строк |
Как преобразовать значение в двоичную строку sql
В этом разделе описываются функции и операторы для работы с двоичными строками, то есть со значениями типа bytea . Многие из них идентичны по функциональности и синтаксису описанным в предыдущем разделе функциям, предназначенным для текстовых строк.
В SQL определены несколько строковых функций, в которых аргументы разделяются не запятыми, а ключевыми словами. Подробнее это описано в Таблице 9.11. Postgres Pro также предоставляет варианты этих функций с синтаксисом, обычным для функций (см. Таблицу 9.12).
Таблица 9.11. SQL -функции и операторы для работы с двоичными строками
bytea || bytea → bytea
Соединяет две двоичные строки.
bit_length ( bytea ) → integer
Возвращает число бит в двоичной строке (это число в 8 раз больше octet_length ).
octet_length ( bytea ) → integer
Возвращает число байт в двоичной строке.
overlay ( bytes bytea PLACING newsubstring bytea FROM start integer [ FOR count integer ] ) → bytea
Заменяет подстроку в bytes , начиная с байта с номером start , длиной count байт, на подстроку newsubstring . В отсутствие параметра count количество заменяемых байтов определяется длиной newsubstring .
position ( substring bytea IN bytes bytea ) → integer
Возвращает начальную позицию первого вхождения substring в bytes либо 0, если такого вхождения нет.
substring ( bytes bytea [ FROM start integer ] [ FOR count integer ] ) → bytea
Извлекает из bytes подстроку, начиная с позиции start (если она указана), длиной до count символов (если она указана). Параметры start и count могут опускаться, но не оба сразу.
trim ( [ LEADING | TRAILING | BOTH ] bytesremoved bytea FROM bytes bytea ) → bytea
Удаляет наибольшую строку, содержащую только байты, заданные в параметре bytesremoved , с начала, с конца или с обеих сторон (по умолчанию подразумевается указание BOTH ) строки bytes .
trim ( [ LEADING | TRAILING | BOTH ] [ FROM ] bytes bytea , bytesremoved bytea ) → bytea
Это нестандартный синтаксис вызова trim() .
В PostgreSQL есть и другие функции для работы с двоичными строками, перечисленные в Таблице 9.12. Некоторые из них используются в качестве внутренней реализации стандартных функций SQL , приведённых в Таблице 9.11.
Таблица 9.12. Другие функции для работы с двоичными строками
bit_count ( bytes bytea ) → bigint
Возвращает число бит в двоичной строке (эту операцию также называют « popcount » ).
btrim ( bytes bytea , bytesremoved bytea ) → bytea
Удаляет наибольшую строку, содержащую только байты, заданные в параметре bytesremoved , с начала и с конца строки bytes .
get_bit ( bytes bytea , n bigint ) → integer
Извлекает из двоичной строки бит с номером n.
get_byte ( bytes bytea , n integer ) → integer
Извлекает из двоичной строки байт с номером n.
length ( bytea ) → integer
Выдаёт число байт в двоичной строке.
length ( bytes bytea , encoding name ) → integer
Выдаёт число символов в двоичной строке, в предположении, что она содержит текст в кодировке encoding .
ltrim ( bytes bytea , bytesremoved bytea ) → bytea
Удаляет наибольшую строку, содержащую только байты, заданные в параметре bytesremoved , с начала строки bytes .
md5 ( bytea ) → text
Вычисляет MD5-хеш двоичной строки и выдаёт результат в шестнадцатеричном виде.
rtrim ( bytes bytea , bytesremoved bytea ) → bytea
Удаляет наибольшую строку, содержащую только байты, заданные в параметре bytesremoved , с конца строки bytes .
set_bit ( bytes bytea , n bigint , newvalue integer ) → bytea
Устанавливает в двоичной строке для бита с номером n значение newvalue .
set_byte ( bytes bytea , n integer , newvalue integer ) → bytea
Устанавливает в двоичной строке для байта с номером n значение newvalue .
sha224 ( bytea ) → bytea
Вычисляет хеш SHA-224 для двоичной строки.
sha256 ( bytea ) → bytea
Вычисляет хеш SHA-256 для двоичной строки.
sha384 ( bytea ) → bytea
Вычисляет хеш SHA-384 для двоичной строки.
sha512 ( bytea ) → bytea
Вычисляет хеш SHA-512 для двоичной строки.
substr ( bytes bytea , start integer [ , count integer ] ) → bytea
Извлекает из bytes подстроку, начиная с позиции start , длиной до count байт (если это значение указано). (Ей равнозначна функция substring( bytes from start for count ) .)
Для функций get_byte и set_byte байты нумеруется с 0. Функции get_bit и set_bit нумеруют биты справа налево; например, бит 0 будет меньшим значащим битом первого байта, а бит 15 — большим значащим битом второго байта.
По историческим причинам функция md5 возвращает значение в шестнадцатеричном виде в типе text , тогда как функции SHA-2 возвращают тип bytea . Для преобразования значения из одного представления в другое используйте функции encode и decode . Например, вызвав encode(sha256(‘abc’), ‘hex’) , вы получите значение в шестнадцатеричном виде в текстовой строке, а decode(md5(‘abc’), ‘hex’) выдаст значение bytea .
В Таблице 9.13 показаны функции для перекодирования текста из одного набора символов (кодировки) в другой и для представления произвольных двоичных данных в текстовом виде. Для всех этих функций аргумент или результат типа text содержит текст в текущей кодировке базы данных, тогда как аргументы или результаты типа bytea содержат текст в кодировке, заданной соответствующим аргументом.
Таблица 9.13. Функции для преобразования текстовых/двоичных строк
convert ( bytes bytea , src_encoding name , dest_encoding name ) → bytea
Преобразует двоичную строку, содержащую текст в кодировке src_encoding , в двоичную строку с текстом в кодировке dest_encoding (возможные варианты преобразований описаны в Подразделе 23.3.4).
convert_from ( bytes bytea , src_encoding name ) → text
Преобразует двоичную строку, содержащую текст в кодировке src_encoding , в строку типа text в кодировке базы данных (возможные варианты преобразований описаны в Подразделе 23.3.4).
convert_to ( string text , dest_encoding name ) → bytea
Преобразует строку типа text в кодировке базы данных в двоичную строку с текстом в кодировке dest_encoding (возможные варианты преобразований описаны в Подразделе 23.3.4).
encode ( bytes bytea , format text ) → text
Переводит двоичные данные в текстовое представление; поддерживаются следующие значения format : base64 , escape , hex .
decode ( string text , format text ) → bytea
Переводит двоичные данные из текстового представления; поддерживает те же значения format , что и функция encode .
Функции encode и decode поддерживают следующие текстовые форматы:
Формат base64 описан в RFC 2045, Разделе 6.8. Согласно этому RFC , закодированные строки разбиваются по 76 символов. Однако завершаются строки не символами CRLF (как требуется в соответствии с MIME), а одним символом конца строки. Функция decode , с другой стороны, игнорирует символы перевода каретки, новой строки, пробелы и табуляции. Если на вход decode поступают некорректные данные base64, возникает ошибка — в том числе, если оказывается некорректным завершающее выравнивание. escape
В формате escape нулевые байты и байты с установленным старшим битом переводятся в восьмеричные спецпоследовательности ( \ nnn ), а обратная косая черта дублируется. Другие байтовые значения представляются в буквальном виде. Функция decode выдаст ошибку, встретив обратную косую черту, за которой не следует ещё одна обратная косая или три восьмеричных цифры; другие значения байта она принимает без изменений. hex
В формате hex каждые 4 бита данных представляются одной шестнадцатеричной цифрой, от 0 до f , при этом первой идёт цифра, представляющая старшие биты. Шестнадцатеричные цифры a — f функция encode выводит в нижнем регистре. Так как наименьшая единица данных — байт (8 бит), функция encode всегда возвращает чётное количество символов. Функция decode , с другой стороны, принимает символы a — f в любом регистре. Если на вход функции decode поступают некорректные данные, возникает ошибка — в том числе, если число символов оказывается нечётным.
См. также агрегатную функцию string_agg в Разделе 9.21 и функции для работы с большими объектами в Разделе 36.4.
| Пред. | Наверх | След. |
| 9.4. Строковые функции и операторы | Начало | 9.6. Функции и операторы для работы с битовыми строками |
