Перейти к содержимому

Как преобразовать значение в двоичную строку sql

  • автор:

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. Функции и операторы для работы с битовыми строками

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *