No Image

Mysql преобразование числа в строку

СОДЕРЖАНИЕ
2 828 просмотров
10 марта 2020

Функция CAST имеет следующий синтаксис:

где аргумент type представляет один из типов:

CHAR (Новшество в 4.0.6)

Функция CAST() соответствует синтаксису ANSI SQL99, а функция CONVERT() – синтаксису ODBC.

Данная функция приведения типов используется главным образом для создания столбца конкретного типа с помощью команды CREATE . SELECT :

Выражение CAST string AS BINARY эквивалентно BINARY string . CAST(expr AS CHAR считает что данное выражение есть строка в кодировке по умолчанию.

Для преобразования строки в числовую величину обычно не нужно ничего делать: просто используйте строку так, как будто это число:

Если вы указываете номер в строковом контексте, номер будет автоматически преобразован к строке типа BINARY .

MySQL поддерживает арифметические операции с 64-битовыми величинами – как со знаковыми, так и с беззнаковыми. Если используются числовые операции (такие как +) и один из операндов представлен в виде unsigned integer , то результат будет беззнаковым. Его можно переопределить, используя операторы приведения SIGNED и UNSIGNED , чтобы получить 64-битовое целое число со знаком или без знака соответственно.

Следует учитывать, что если один из операндов представлен величиной с плавающей точкой (в данном контексте DECIMAL() рассматривается как величина с плавающей точкой), результат также является величиной с плавающей точкой и не подчиняется вышеприведенному правилу приведения.

Если в арифметической операции используется строка, то результат преобразуется в число с плавающей точкой.

Функции CAST() и CONVERT() были добавлены в MySQL 4.0.2.

В MySQL 4.0 была изменены правила обработки беззнаковых величин, чтобы обеспечить более полную поддержку величин типа BIGINT . Если код необходимо использовать и для MySQL 4.0, и для версии 3.23 (в которой функция CAST , скорее всего, не будет работать), то можно, применив следующий трюк, получить при вычитании двух беззнаковых целочисленных столбцов результат со знаком:

Читайте также:  Lg 42pt250 нет изображения

Идея состоит в том, что перед выполнением вычитания данные столбцы приводятся к типу с плавающей точкой.

Если возникнут проблемы со столбцами типа UNSIGNED в старых приложениях MySQL при переносе их на MySQL 4.0, можно использовать параметр –sql-mode=NO_UNSIGNED_SUBTRACTION при запуске mysqld . Однако следует учитывать, что при этом теряется возможность эффективного использования столбцов типа UNSIGNED BIGINT .

Когда мы присваиваем значение одного одного типа столбцу, который хранит данные другого типа, либо выполняем операции, которые вовлекают данные разных типов, SQL Server пытается выполнить преобразование и привести используемое значение к нужному типу. Но не все преобразования SQL Server может выполнить автоматически. SQL Server может выполнять неявные преобразования от типа с меньшим приоритетом к типу с большим приоритетом. Таблица приоритетов (чем выше, тем больший приоритет):

datetime
smalldatetime
float
real
decimal
money
smallmoney
int
smallint
tinyint
bit
nvarchar
nchar
varchar
char

То есть SQL Server автоматически может преобразовать число 100.0 (float) в дату и время (datetime).

В тех случаях, когда необходимо выполнить преобразования от типов с высшим приоритетом к типам с низшим приоритетом, то надо выполнять явное приведение типов. Для этого в T-SQL определены две функции: CONVERT и CAST .

Функция CAST преобразует выражение одного типа к другому. Она имеет следующую форму:

Для примера возьмем следующие таблицы:

Например, при выводе информации о заказах преобразует числовое значение и дату в строку:

Convert

Большую часть преобразований охватывает функция CAST. Если же необходимо какое-то дополнительное форматирование, то можно использовать функцию CONVERT . Она имеет следующую форму:

Третий необязательный параметр задает стиль форматирования данных. Этот параметр представляет числовое значение, которое для разных типов данных имеет разную интерпретацию. Например, некоторые значения для форматирования дат и времени:

0 или 100 – формат даты "Mon dd yyyy hh:miAM/PM" (значение по умолчанию)

Читайте также:  Ip адрес это физический адрес компьютера

1 или 101 – формат даты "mm/dd/yyyy"

3 или 103 – формат даты "dd/mm/yyyy"

7 или 107 – формат даты "Mon dd, yyyy hh:miAM/PM"

8 или 108 – формат даты "hh:mi:ss"

10 или 110 – формат даты "mm-dd-yyyy"

14 или 114 – формат даты "hh:mi:ss:mmmm" (24-часовой формат времени)

Некоторые значения для форматирования данных типа money в строку:

0 – в дробной части числа остаются только две цифры (по умолчанию)

1 – в дробной части числа остаются только две цифры, а для разделения разрядов применяется запятая

2 – в дробной части числа остаются только четыре цифры

Например, выведем дату и стоимость заказов с форматированием:

TRY_CONVERT

При использовании функций CAST и CONVERT SQL Server выбрасывает исключение, если данные нельзя привести к определенному типу. Например:

Чтобы избежать генерации исключения можно использовать функцию TRY_CONVERT . Ее использование аналогично функции CONVERT за тем исключением, что если выражение не удается преобразовать к нужному типу, то функция возвращает NULL:

Дополнительные функции

Кроме CAST, CONVERT, TRY_CONVERT есть еще ряд функций, которые могут использоваться для преобразования в ряд типов:

STR(float [, length [,decimal]]) : преобразует число в строку. Второй параметр указывает на длину строки, а третий – сколько знаков в дробной части числа надо оставлять

CHAR(int) : преобразует числовой код ASCII в символ. Нередко используется для тех ситуаций, когда необходим символ, который нельзя ввести с клавиатуры

ASCII(char) : преобразует символ в числовой код ASCII

NCHAR(int) : преобразует числовой код UNICODE в символ

UNICODE(char) : преобразует символ в числовой код UNICODE

Базы данных

В этом учебном пособии вы узнаете, как использовать MySQL функцию CONVERT с синтаксисом и примерами.

Описание

MySQL функция CONVERT преобразует значение из одного типа данных в другой или один набор символов в другой.

Читайте также:  Set lower bound c

Синтаксис

Синтаксис MySQL функции CONVERT:

ИЛИ
Второй синтаксис для функции CONVERT используется для преобразования одного набора символов в другой набор символов:

Параметры или аргументы

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. Например:

Комментировать
2 828 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector