СУБД MySQL оснащена специальными функциями, предназначенными для форматирования данных. Эти функции перечислены в табл. 7.8.
Функции форматирования
Функции форматирования
Простейшей из этих функций является функция FORMAT() , предназначенная для форматирования больших арифметических значений в более читабельные числовые по­следовательности с десятичной запятой. Первым аргументом функции FORMAT() является форматируемое число, а вторым - количество цифр после запятой в полученном результате.
Функции форматирования
Календарные и временные значения форматируются с помощью функций DATE_ FORMAT() и TIME_FORMAT() , принимающих в качестве аргументов значения даты или времени и строку с описанием формата, которая и определяет результат работы функции. Эта форматирующая строка может содержать специальные символы, которые используются для изменения результирующего значения. Небольшой перечень этих символов приводится в таблице 7.9.
Функции форматирования
Функции форматирования
СУБД MySQL также позволяет производить преобразование IP-адресов в числовое представление и наоборот. Эту задачу выполняют функции INET_ATON() и INET_NTOA() соответственно.
Функции форматирования
Функции форматирования
Функции преобразования типов данных
Для выполнения преобразования типа данных, в MySQL предусмотрена функция CAST(). Начиная с версии 4.1, в MySQL поддерживаются следующие типы:
■ BINARY ■ DATETIME
■ CHAR ■ SIGNED
■ DATE ■ UNSIGNED
■ TIME
Обычно при выполнении арифметических операций строки автоматически преобразуются в числа. Таким образом, эквивалентными будут следующие операции.
Функции форматирования
Аналогичным образом строки можно преобразовать в строки типа BINARY, чтобы все операции, в которых они будут задействованы, стали чувствительными к регистру обрабатываемых данных. Преобразование строки с помощью функции CAST() эквивалентно использованию ключевого слова BINARY перед ним.
Функции форматирования
Интересно отметить, что вполне возможно добиться того, чтобы календарные и временные функции (включая функции NOW(), CURTIME() и CURDATE() ) возвращали значения не в строковом, а в числовом представлении. Для этого следует воспользоваться функцией CAST() или применить календарные и временные функции в числовом контексте.
Функции форматирования
Функцию CAST() удобно применять при переносе существующих данных в новую СУБД, т.к. она позволяет преобразовывать данные из одного типа данных в другой, более подходящий для новой системы. Для того чтобы это проиллюстрировать, рассмотрим следующую таблицу данных (не MySQL), в которой значения хранятся в виде строк.
Функции форматирования
Функции форматирования